数组从大到小排列,最大的一定有一个它本身,按照顺序,直到数字不大于天数截止增加。
#include <bits/stdc++.h>
using namespace std;
bool cmp(int a, int b) {
return a > b;
}
int main() {
int n;
cin >> n;
int a[100001];
for(int i = 0; i < n; i++) {
cin >> a[i];
}
int count = 0;
sort(a, a + n, cmp);
for(int i = 0; i < n; i++) {
if(a[i] > i + 1) {
count++;
}
}
cout << count;
return 0;
}