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

• Last Updated : 03 Mar, 2022

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.```

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[0]);`   `    ``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`   `?>`

## Javascript

 ``

Output:

`1`

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

My Personal Notes arrow_drop_up
Recommended Articles
Page :