样例一错误,样例二通过。
#include <cstdio>
struct Ticket{
int t;
int p;
bool flag;
}a[100010];
int n, ans;
int tt, pp, op;
int front, tail;
int main(){
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
scanf("%d%d%d", &op, &pp, &tt);
if (op == 0) {
ans += pp;
a[tail].p = pp;
a[tail].t = tt + 45;
tail++;
}
else {
while(front < tail && a[front].t < tt) front++;
bool find;
for (int j = front; j < tail; ++j) {
if (a[j].p >= pp && a[j].flag == 0) {
find = true;
a[j].flag = 1;
break;
}
}
if (!find) ans += pp;
}
}
printf("%d", ans);
return 0;
}