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

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:5

Sum of original array = 4 + 2 + 1 + 10 + 6 = 23

Sum of the modified array = 5 + 5 + 5 + 5 + 5 = 25Input: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 <bits/stdc++.h>` `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` `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

`<script>` `// Javascript implementation of the approach` `// Function to return the minimum` `// required value` `function` `findMinValue(arr, n)` `{` ` ` `// Find the sum of the` ` ` `// array elements` ` ` `let sum = 0;` ` ` `for` `(let i = 0; i < n; i++)` ` ` `sum += arr[i];` ` ` `// Return the required value` ` ` `return` `(parseInt(sum / n) + 1);` `}` `// Driver code` ` ` `let arr = [ 4, 2, 1, 10, 6 ];` ` ` `let n = arr.length;` ` ` `document.write(findMinValue(arr, n));` `</script>` |

**Output:**

5

Attention reader! Don’t stop learning now. Participate in the **Scholorship Test for First-Step-to-DSA Course for Class 9 to 12 students**.