Submission #1307956

#TimeUsernameProblemLanguageResultExecution timeMemory
1307956ballbreakerGrowing Trees (BOI11_grow)C++20
0 / 100
1097 ms1852 KiB
#include<bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
using namespace std;
int a[100005];
int geti(int x) {
    return a[x];
}
void add(int l, int r) {
    for (int j = l; j <= r; j++) {
        a[j]++;
    }
}
main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    int m;
    cin >> m;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    sort(a + 1, a + n + 1);
    while (m--) {
        char t;
        cin >> t;
        if (t == 'F') {
            int c, h;
            cin >> c >> h;
            int val = geti(c);
            int l = 0, r = c - 1;
            while (l < r) {
                int mid = (l + r + 1) >> 1;
                if (geti(mid) < val) {
                    l = mid;
                } else {
                    r = mid - 1;
                }
            }
            int pos = l;
            add(1, pos);
            l = pos + 1, r = n;
            while (l < r) {
                int mid = (l + r + 1) >> 1;
                if (geti(mid) == val) {
                    l = mid;
                } else {
                    r = mid - 1;
                }
            }
            int poso = l;
            int rem = c - pos;
            add(poso - rem + 1, poso);
        } else {
            int l, r;
            cin >> l >> r;
            int ans = 0;
            for (int i = 1; i <= n; i++) {
                // cout << a[i] << ' ';
                if (l <= a[i] && a[i] <= r) {
                    ans++;
                }
            }
            // cout << endl;
            cout << ans << endl;

        }
    }
}

Compilation message (stderr)

grow.cpp:13:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   13 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...