# Number of positions such that adding K to the element is greater than sum of all other elements

Given an array arr[] and a number K. The task is to find out the number of valid positions i such that (arr[i] + K) is greater than sum of all elements of array excluding arr[i].

Examples:

```Input: arr[] = {2, 1, 6, 7} K = 4
Output: 1
Explanation: There is only 1 valid position i.e 4th.
After adding 4 to the element at 4th position
it is greater than the sum of all other
elements of the array.

Input: arr[] = {2, 1, 5, 4} K = 2
Output: 0
Explanation: There is no valid position.
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

1. First of all find the sum of all the elements of the array and store it in a variable say sum.
2. Now, traverse the array and for every position i check if the condition (arr[i] + K) > (sum – arr[i]) holds.
3. If YES then increase the counter and finally print the value of counter.

Below is the implementation of the above approach:

## C++

 `// C++ program to implement above approach ` ` `  `#include ` `using` `namespace` `std; ` ` `  `// Function that will find out ` `// the valid position ` `int` `validPosition(``int` `arr[], ``int` `N, ``int` `K) ` `{ ` `    ``int` `count = 0, sum = 0; ` ` `  `    ``// find sum of all the elements ` `    ``for` `(``int` `i = 0; i < N; i++) { ` `        ``sum += arr[i]; ` `    ``} ` ` `  `    ``// adding K to the element and check ` `    ``// whether it is greater than sum of ` `    ``// all other elements ` `    ``for` `(``int` `i = 0; i < N; i++) { ` `        ``if` `((arr[i] + K) > (sum - arr[i])) ` `            ``count++; ` `    ``} ` ` `  `    ``return` `count; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `arr[] = { 2, 1, 6, 7 }, K = 4; ` `    ``int` `N = ``sizeof``(arr) / ``sizeof``(arr); ` ` `  `    ``cout << validPosition(arr, N, K); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of the approach ` `class` `GFG  ` `{ ` ` `  `// Function that will find out ` `// the valid position ` `static` `int` `validPosition(``int` `arr[], ``int` `N, ``int` `K) ` `{ ` `    ``int` `count = ``0``, sum = ``0``; ` ` `  `    ``// find sum of all the elements ` `    ``for` `(``int` `i = ``0``; i < N; i++)  ` `    ``{ ` `        ``sum += arr[i]; ` `    ``} ` ` `  `    ``// adding K to the element and check ` `    ``// whether it is greater than sum of ` `    ``// all other elements ` `    ``for` `(``int` `i = ``0``; i < N; i++) ` `    ``{ ` `        ``if` `((arr[i] + K) > (sum - arr[i])) ` `            ``count++; ` `    ``} ` ` `  `    ``return` `count; ` `} ` ` `  `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `arr[] = { ``2``, ``1``, ``6``, ``7` `}, K = ``4``; ` `    ``int` `N = arr.length; ` `    ``System.out.println(validPosition(arr, N, K)); ` `} ` `} ` ` `  `/* This code contributed by PrinciRaj1992 */`

## Python3

 `# Python3 program to implement  ` `# above approach  ` ` `  `# Function that will find out  ` `# the valid position  ` `def` `validPosition(arr, N, K):  ` `    ``count ``=` `0``; ``sum` `=` `0``;  ` ` `  `    ``# find sum of all the elements  ` `    ``for` `i ``in` `range``(N):  ` `        ``sum` `+``=` `arr[i];  ` ` `  `    ``# adding K to the element and check  ` `    ``# whether it is greater than sum of  ` `    ``# all other elements  ` `    ``for` `i ``in` `range``(N):  ` `        ``if` `((arr[i] ``+` `K) > (``sum` `-` `arr[i])): ` `            ``count ``+``=` `1``;  ` ` `  `    ``return` `count;  ` ` `  `# Driver code  ` `arr ``=` `[``2``, ``1``, ``6``, ``7` `]; ` `K ``=` `4``;  ` `N ``=` `len``(arr);  ` ` `  `print``(validPosition(arr, N, K));  ` ` `  `# This code is contributed by 29AjayKumar `

## C#

 `// C# implementation of the approach ` `using` `System; ` `     `  `class` `GFG  ` `{ ` `  `  `// Function that will find out ` `// the valid position ` `static` `int` `validPosition(``int` `[]arr, ``int` `N, ``int` `K) ` `{ ` `    ``int` `count = 0, sum = 0; ` `  `  `    ``// find sum of all the elements ` `    ``for` `(``int` `i = 0; i < N; i++)  ` `    ``{ ` `        ``sum += arr[i]; ` `    ``} ` `  `  `    ``// adding K to the element and check ` `    ``// whether it is greater than sum of ` `    ``// all other elements ` `    ``for` `(``int` `i = 0; i < N; i++) ` `    ``{ ` `        ``if` `((arr[i] + K) > (sum - arr[i])) ` `            ``count++; ` `    ``} ` `  `  `    ``return` `count; ` `} ` `  `  `// Driver code ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``int` `[]arr = { 2, 1, 6, 7 };``int` `K = 4; ` `    ``int` `N = arr.Length; ` `    ``Console.WriteLine(validPosition(arr, N, K)); ` `} ` `} ` ` `  `// This code has been contributed by 29AjayKumar `

## PHP

 ` (``\$sum` `- ``\$arr``[``\$i``]))  ` `            ``\$count``++;  ` `    ``}  ` ` `  `    ``return` `\$count``;  ` `}  ` ` `  `    ``// Driver code  ` `    ``\$arr` `= ``array``( 2, 1, 6, 7 ); ` `    ``\$K` `= 4;  ` `    ``\$N` `= ``count``(``\$arr``) ;  ` ` `  `    ``echo` `validPosition(``\$arr``, ``\$N``, ``\$K``);  ` `     `  `    ``// This code is contributed by AnkitRai01 ` ` `  `?> `

Output:

```1
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.