# Minimum value to be assigned to the elements so that sum becomes greater than initial sum

Last Updated : 08 Dec, 2022

Given an array arr[] of N elements, the task is to update all the elements of the given array to some value X such that the sum of all the updated array elements is strictly greater than the sum of all the elements of the initial array and X is the minimum possible.

Examples:

Input: arr[] = {4, 2, 1, 10, 6}
Output:
Sum of original array = 4 + 2 + 1 + 10 + 6 = 23
Sum of the modified array = 5 + 5 + 5 + 5 + 5 = 25

Input: arr[] = {9876, 8654, 5470, 3567, 7954}
Output: 7105

Approach:

• Find the sum of the original array elements and store it in a variable sumArr
• Calculate X = sumArr / n where n is the number of elements in the array.
• Now, in order to exceed the sum of the original array, every element of the new array has to be at least X + 1.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach` `#include ` `using` `namespace` `std;`   `// Function to return the minimum` `// required value` `int` `findMinValue(``int` `arr[], ``int` `n)` `{`   `    ``// Find the sum of the` `    ``// array elements` `    ``long` `sum = 0;` `    ``for` `(``int` `i = 0; i < n; i++)` `        ``sum += arr[i];`   `    ``// Return the required value` `    ``return` `((sum / n) + 1);` `}`   `// Driver code` `int` `main()` `{` `    ``int` `arr[] = { 4, 2, 1, 10, 6 };` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(``int``);`   `    ``cout << findMinValue(arr, n);`   `    ``return` `0;` `}`

## Java

 `// Java implementation of the approach` `import` `java.io.*;`   `public` `class` `GFG {`   `    ``// Function to return the minimum` `    ``// required value` `    ``static` `int` `findMinValue(``int` `arr[], ``int` `n)` `    ``{`   `        ``// Find the sum of the` `        ``// array elements` `        ``long` `sum = ``0``;` `        ``for` `(``int` `i = ``0``; i < n; i++)` `            ``sum += arr[i];`   `        ``// Return the required value` `        ``return` `((``int``)(sum / n) + ``1``);` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `main(String args[])` `    ``{` `        ``int` `arr[] = { ``4``, ``2``, ``1``, ``10``, ``6` `};` `        ``int` `n = arr.length;`   `        ``System.out.print(findMinValue(arr, n));` `    ``}` `}`

## Python3

 `# Python3 implementation of the approach`   `# Function to return the minimum ` `# required value` `def` `findMinValue(arr, n):` `    `  `    ``# Find the sum of the ` `    ``# array elements` `    ``sum` `=` `0` `    ``for` `i ``in` `range``(n):` `        ``sum` `+``=` `arr[i]` `        `  `    ``# Return the required value` `    ``return` `(``sum` `/``/` `n) ``+` `1` `    `  `# Driver code` `arr ``=` `[``4``, ``2``, ``1``, ``10``, ``6``] ` `n ``=` `len``(arr) ` `print``(findMinValue(arr, n))`

## C#

 `// C# implementation of the above approach` `using` `System;`   `class` `GFG` `{ ` `    `  `    ``// Function to return the minimum ` `    ``// required value ` `    ``static` `int` `findMinValue(``int` `[]arr, ``int` `n) ` `    ``{ `   `        ``// Find the sum of the ` `        ``// array elements ` `        ``long` `sum = 0; ` `        ``for` `(``int` `i = 0; i < n; i++) ` `            ``sum += arr[i]; `   `        ``// Return the required value ` `        ``return` `((``int``)(sum / n) + 1); ` `    ``} `   `    ``// Driver code ` `    ``static` `public` `void` `Main () ` `    ``{ ` `        ``int` `[]arr = { 4, 2, 1, 10, 6 }; ` `        ``int` `n = arr.Length; `   `        ``Console.WriteLine(findMinValue(arr, n)); ` `    ``} ` `}        ` `        `  `// This code is contributed by AnkitRai01`

## Javascript

 ``

Output:

`5`

Time Complexity: O(N).
Auxiliary Space: O(1).

Previous
Next