题解
2025-08-25 10:36:31
发布于:江苏
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int MAX=1145;
queue<int> q[MAX+1];
int main() {
int n;
cin>>n;
int num=0;
for(int i=1;i<=n;i++){
int a,b,c;
cin>>a>>b>>c;
if(a==0){
num+=b;
if(b>=1&&b<=MAX){
q[b].push(c);
}
}else{
for(int j=1;j<=MAX;j++){
while(!q[j].empty()&&c-q[j].front()>45){
q[j].pop();
}
}
int min=2100000000;
int tmp=-1;
for(int j=b;j<=MAX;j++){
if(!q[j].empty()&&q[j].front()<min){
min=q[j].front();
tmp=j;
}
}
if(tmp!=-1){
q[tmp].pop();
}else{
num+=b;
}
}
}
cout<<num;
return 0;
}
这里空空如也
有帮助,赞一个