# Count of elements whose absolute difference with the sum of all the other elements is greater than k

Given an array arr[] of N integers and an integer K, the task is to find the number of anomalies in the array. An anomaly is a number for which the absolute difference between it and all the other numbers in the array is greater than K. Find the number of anomalies.

Examples:

Input: arr[] = {1, 3, 5}, k = 1
Output: 2
1 and 3 are the anomalies.
|1 – (3 + 5)| = 7 > 1
|3 – (1 + 5)| = 3 > 1

Input: arr[] = {7, 1, 8}, k = 5
Output: 1

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

Approach: Find the sum of all the array elements and store it in sum, now for every element of the array arr[i] if the absolute difference of arr[i] with sum – arr[i] is > k then it is an anomaly. Count all the anomalies in the array and print the result in the end.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function to return the number of anomalies ` `static` `int` `countAnomalies(``int` `arr[],  ` `                          ``int` `n, ``int` `k) ` `{ ` ` `  `    ``// To store the count of anomalies ` `    ``int` `cnt = 0; ` ` `  `    ``// To store the sum of the array elements ` `    ``int` `i, sum = 0; ` ` `  `    ``// Find the sum of the array elements ` `    ``for` `(i = 0; i < n; i++) ` `        ``sum += arr[i]; ` ` `  `    ``// Count the anomalies ` `    ``for` `(i = 0; i < n; i++) ` `        ``if` `(``abs``(arr[i] -  ` `               ``(sum - arr[i])) > k) ` `            ``cnt++; ` ` `  `    ``return` `cnt; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `arr[] = { 1, 3, 5 }; ` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr); ` `    ``int` `k = 1; ` `    ``cout << countAnomalies(arr, n, k); ` `} ` ` `  `// This code is contributed ` `// by Code_Mech `

## Java

 `// Java implementation of the approach ` `class` `GFG { ` ` `  `    ``// Function to return the number of anomalies ` `    ``static` `int` `countAnomalies(``int` `arr[], ``int` `n, ``int` `k) ` `    ``{ ` ` `  `        ``// To store the count of anomalies ` `        ``int` `cnt = ``0``; ` ` `  `        ``// To store the sum of the array elements ` `        ``int` `i, sum = ``0``; ` ` `  `        ``// Find the sum of the array elements ` `        ``for` `(i = ``0``; i < n; i++) ` `            ``sum += arr[i]; ` ` `  `        ``// Count the anomalies ` `        ``for` `(i = ``0``; i < n; i++) ` `            ``if` `(Math.abs(arr[i] - (sum - arr[i])) > k) ` `                ``cnt++; ` ` `  `        ``return` `cnt; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `arr[] = { ``1``, ``3``, ``5` `}; ` `        ``int` `n = arr.length; ` `        ``int` `k = ``1``; ` `        ``System.out.print(countAnomalies(arr, n, k)); ` `    ``} ` `} `

## Python3

 `# Python3 implementation of the approach ` ` `  `# Function to return the  ` `# number of anomalies ` `def` `countAnomalies(arr, n, k): ` ` `  `    ``# To store the count of anomalies ` `    ``cnt ``=` `0` ` `  `    ``# To store the Sum of  ` `    ``# the array elements ` `    ``i, ``Sum` `=` `0``, ``0` ` `  `    ``# Find the Sum of the array elements ` `    ``for` `i ``in` `range``(n): ` `        ``Sum` `+``=` `arr[i] ` ` `  `    ``# Count the anomalies ` `    ``for` `i ``in` `range``(n): ` `        ``if` `(``abs``(arr[i] ``-` `(``Sum` `-` `arr[i])) > k): ` `            ``cnt ``+``=` `1` ` `  `    ``return` `cnt ` ` `  `# Driver code ` `arr ``=` `[``1``, ``3``, ``5``] ` `n ``=` `len``(arr) ` `k ``=` `1` `print``(countAnomalies(arr, n, k)) ` ` `  `# This code is contributed  ` `# by mohit kumar `

## C#

 `// C# implementation of the approach ` `using` `System; ` ` `  `class` `GFG ` `{ ` ` `  `    ``// Function to return the number of anomalies ` `    ``static` `int` `countAnomalies(``int``[] arr, ``int` `n, ``int` `k) ` `    ``{ ` ` `  `        ``// To store the count of anomalies ` `        ``int` `cnt = 0; ` ` `  `        ``// To store the sum of the array elements ` `        ``int` `i, sum = 0; ` ` `  `        ``// Find the sum of the array elements ` `        ``for` `(i = 0; i < n; i++) ` `            ``sum += arr[i]; ` ` `  `        ``// Count the anomalies ` `        ``for` `(i = 0; i < n; i++) ` `            ``if` `(Math.Abs(arr[i] - (sum - arr[i])) > k) ` `                ``cnt++; ` ` `  `        ``return` `cnt; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int``[] arr = { 1, 3, 5 }; ` `        ``int` `n = arr.Length; ` `        ``int` `k = 1; ` `        ``Console.WriteLine(countAnomalies(arr, n, k)); ` `    ``} ` `} ` ` `  `// This code is contributed by Code_Mech. `

## PHP

 ` ``\$k``)  ` `            ``\$cnt``++;  ` ` `  `    ``return` `\$cnt``;  ` `} ` ` `  `// Driver code  ` `\$arr` `= ``array``(1, 3, 5); ` `\$n` `= ``count``(``\$arr``);  ` `\$k` `= 1;  ` ` `  `echo` `countAnomalies(``\$arr``, ``\$n``, ``\$k``);  ` ` `  `// This code is contributed by Ryuga ` `?> `

Output:

```2
```

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.