#include<bits/stdc++.h>
using namespace std;
struct yhj{
int time,price,used=0;
}a[114514];
int bou[114514],p[114514],t[114514];
int main(){
int n,i,j,ans=0,l=0,lx=0,a_n=1;
cin>>n;
for(i=1;i<=n;i++)
cin>>bou[i]>>p[i]>>t[i];
for(i=1;i<=n;i++){
if(bou[i]==0){
ans+=p[i];
a[a_n].time=t[i];
a[a_n].price=p[i];
if(t[i]-lx>45||l==0){
l=a_n;
lx=t[i];
}
a_n++;
}
else{
int f=0;
for(j=l;j<=a_n;j++){
if(a[j].price>=p[i]&&t[i]-a[j].time-45<=0&&a[j].used==0)
{
f=1;
//cout<<"使用"<<j<<"号优惠券 "<<"时间"<<a[j].time<<" "<<"失效时间"<<a[j].time+45<<" "<<"现在时间"<<t[i]<<endl;
a[j].used=1;
break;
}
}
if(f==0) ans+=p[i];
if(t[i]-lx>45){
l=a_n;
lx=t[i];
}
}
//cout<<ans<<endl;
}
cout<<ans;
}
两个样例可过,提交全WA