pbds WA40 求调
查看原帖
pbds WA40 求调
378418
Chenaknoip楼主2024/8/1 11:09
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace __gnu_pbds;
#define int long long
__gnu_pbds::tree<std::pair<int, int>, __gnu_pbds::null_type,
                 std::less<std::pair<int, int> >, __gnu_pbds::rb_tree_tag,
                 __gnu_pbds::tree_order_statistics_node_update>
    trr;
int n, p;
int cnt = 0, num = 0;
signed main() {
    scanf("%lld%lld", &n, &p);
    while (n--) {
        char f; int k;
        scanf(" %c%lld", &f, &k);
        if (f == 'I') {
            trr.insert({k - cnt, n});
        }
        if (f == 'A') {
            cnt += k;
        }
        if (f == 'S') {
            cnt -= k;
            while (!trr.empty() && trr.find_by_order(0)->first + cnt < p) {
                trr.erase(trr.find_by_order(0));
                num++;
            }
        }
        if (f == 'F') {
            if (k > trr.size()) {
                printf("-1\n");
            } else {
                printf("%lld\n", trr.find_by_order(trr.size() - k)->first + cnt);
            }
        }
    }
    printf("%lld\n", num);
    return 0;
}
2024/8/1 11:09
加载中...