Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- using namespace std;
- const int MAXN = 300005;
- int N;
- int B[MAXN];
- int rmax[MAXN];
- int main() {
- cin >> N;
- for (int i = 0; i < N; ++i) {
- cin >> B[i];
- }
- sort(B, B+N);
- rmax[0] = 0;
- for (int i = 0; i < N; ++i) {
- rmax[i + 1] = max(rmax[i], B[i] + N - i + 1);
- }
- int ct = 0;
- int right = 0;
- for (int i = N - 1; i >= 0; --i) {
- if (B[i] + N >= rmax[i] && B[i] + N >= right) {
- ++ct;
- }
- right = max(right, B[i] + N - i);
- }
- cout << ct << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment