#include <bits/stdc++.h>
using namespace std;
struct FenwickTree {
vector<int> ft;
FenwickTree() {
ft.resize((int)1e6+5, 0);
}
int get(int x) {
int res = 0;
for (; x <= 1e6; x += x & -x)
res += ft[x];
return res;
}
void update(int x) {
for (; x; x -= x & -x)
ft[x] ++;
}
};
int n, a[500005];
FenwickTree ft;
int main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n;
for (int i = 1; i <= n; ++ i) {
cin >> a[i];
ft.update(a[i]);
}
for (int i = n; i >= 1; -- i) {
if (ft.get(i) >= i) {
cout << i;
return 0;
}
}
cout << 0;
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
4176 KB |
Output is correct |
2 |
Correct |
2 ms |
4176 KB |
Output is correct |
3 |
Correct |
2 ms |
4176 KB |
Output is correct |
4 |
Correct |
2 ms |
4176 KB |
Output is correct |
5 |
Correct |
2 ms |
4216 KB |
Output is correct |
6 |
Correct |
2 ms |
4176 KB |
Output is correct |
7 |
Correct |
3 ms |
4256 KB |
Output is correct |
8 |
Correct |
12 ms |
5156 KB |
Output is correct |
9 |
Correct |
59 ms |
9388 KB |
Output is correct |
10 |
Correct |
28 ms |
6888 KB |
Output is correct |