蒟蒻70pts求调
查看原帖
蒟蒻70pts求调
583610
DrAlfred楼主2022/12/2 06:38
#include <bits/stdc++.h>
#define  int long long
using namespace std;
int m, t, a, b, cnt, moneyCache;
struct ProtectedMoney {
    int price, secured; // secured 在哪个时间能解封
    ProtectedMoney(int a, int b) {
        price = a, secured = b;
    }
    inline bool operator>(const ProtectedMoney &ano) const {
        return secured > ano.secured;
    }
};
priority_queue<ProtectedMoney, vector<ProtectedMoney>, greater<ProtectedMoney>> que;
int32_t main(int32_t argc, char const *argv[]) {
    scanf("%lld", &m);
    for (int event = 1; event <= m; event++) {
        scanf("%lld%lld", &t, &a);
        while ((!que.empty()) && (que.top().secured == event)) {
            moneyCache += que.top().price;
            que.pop();
        }
        if (t == 1) {
            moneyCache += a;
        }
        if (t == 2) {
            if (moneyCache >= a) {
                moneyCache -= a;
            }
            else {
                ++cnt;
            }
        }
        if (t == 3) {
            scanf("%lld", &b);
            moneyCache -= b;
            que.push(ProtectedMoney(a, b));
        }
    }
    printf("%lld\n", cnt);
    system("pause");
    return 0;
}

2022/12/2 06:38
加载中...