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

Last Updated : 03 Mar, 2022

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:
1 and 3 are the anomalies.
|1 – (3 + 5)| = 7 > 1
|3 – (1 + 5)| = 3 > 1

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

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

## Javascript

 ``

Output:

`2`

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

Previous
Next