Related Articles

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

• Last Updated : 15 Apr, 2021

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);` `    ``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`

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

My Personal Notes arrow_drop_up