Given an array *arr* of *N* integers, the task is to find the number of elements that satisfy the following condition:

If the element is *X* then there has to be exactly *X* number of elements in the array (excluding the number *X*) which are greater than or equal to *X*

**Examples:**

Input:arr[] = {1, 2, 3, 4}Output:1 Only element 2 satisfies the condition as there are exactly 2 elements which are greater than or equal to 2 (3, 4) except 2 itself.Input:arr[] = {5, 5, 5, 5, 5}Output:0

**Approach:** The problem involves efficient searching for each arr[i] element the number of arr[j]’s (i != j) which are greater than or equal to arr[i].

- Sort the array in ascending order.
- For every element arr[i], using binary search get the count of all the elements that are greater than or equal to arr[i] except arr[i] itself.
- If the count is equal to arr[i] then increment the result.
- Print the value of the result in the end.

Below is the implementation of the above approach:

`// C++ implementation of the approach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; `
`#define ll long long ` ` ` `ll ` `int` `getCount(vector<ll ` `int` `> v, ` `int` `n) `
`{ ` ` ` `// Sorting the vector `
` ` `sort((v).begin(), (v).end()); `
` ` `ll ` `int` `cnt = 0; `
` ` `for` `(ll ` `int` `i = 0; i < n; i++) { `
` ` ` ` `// Count of numbers which `
` ` `// are greater than v[i] `
` ` `ll ` `int` `tmp = v.end() - 1 `
` ` `- upper_bound((v).begin(), (v).end(), v[i] - 1); `
` ` ` ` `if` `(tmp == v[i]) `
` ` `cnt++; `
` ` `} `
` ` `return` `cnt; `
`} ` ` ` `// Driver code ` `int` `main() `
`{ ` ` ` `ll ` `int` `n; `
` ` `n = 4; `
` ` `vector<ll ` `int` `> v; `
` ` `v.push_back(1); `
` ` `v.push_back(2); `
` ` `v.push_back(3); `
` ` `v.push_back(4); `
` ` ` ` `cout << getCount(v, n); `
` ` `return` `0; `
`} ` |

*chevron_right*

*filter_none*

`# Python3 implementation of the approach ` `from` `bisect ` `import` `bisect as upper_bound `
` ` `def` `getCount(v, n): `
` ` ` ` `# Sorting the vector `
` ` `v ` `=` `sorted` `(v) `
` ` `cnt ` `=` `0`
` ` `for` `i ` `in` `range` `(n): `
` ` ` ` `# Count of numbers which `
` ` `# are greater than v[i] `
` ` `tmp ` `=` `n ` `-` `1` `-` `upper_bound(v, v[i] ` `-` `1` `) `
` ` ` ` `if` `(tmp ` `=` `=` `v[i]): `
` ` `cnt ` `+` `=` `1`
` ` `return` `cnt `
` ` `# Driver codemain() ` `n ` `=` `4`
`v ` `=` `[] `
`v.append(` `1` `) `
`v.append(` `2` `) `
`v.append(` `3` `) `
`v.append(` `4` `) `
` ` `print` `(getCount(v, n)) `
` ` `# This code is contributed by Mohit Kumar ` |

*chevron_right*

*filter_none*

**Output:**

1

## Recommended Posts:

- Noble integers in an array (count of greater elements is equal to value)
- Count of elements whose absolute difference with the sum of all the other elements is greater than k
- Replace repeating elements with greater that greatest values
- Count smaller elements on right side and greater elements on left side using Binary Index Tree
- Count of elements which are equal to the XOR of the next two elements
- Adding elements of an array until every element becomes greater than or equal to k
- Sum of elements in an array with frequencies greater than or equal to that element
- Length of longest subarray in which elements greater than K are more than elements not greater than K
- Count subarrays with all elements greater than K
- Count the number of elements which are greater than any of element on right side of an array
- Count sub-arrays which have elements less than or equal to X
- Count pairs in an array such that both elements has equal set bits
- Count of smaller or equal elements in sorted array
- Count elements less than or equal to a given value in a sorted rotated array
- Count elements smaller than or equal to x in a sorted matrix

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.