样例全过,30分,求助
#include <bits/stdc++.h>
using namespace std;
int n;
struct node{
int ty,p,t;
}a[100005],c[100005];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
scanf("%d%d%d",&a[i].ty,&a[i].p,&a[i].t);
long long ans=0,cnt=1,start=1;
for(int i=1;i<=n;i++)
{
if(a[i].ty==0){
ans+=a[i].p;
c[cnt].ty=a[i].ty, c[cnt].p=a[i].p;
c[cnt].t=a[i].t;
cnt++;
}
if(a[i].ty==1){
bool f=1;
for(int j=start;j<=cnt;j++){
if(c[j].ty==1) continue;
if(a[i].t-c[j].t>45)
start=j;
else if(c[j].p>=a[i].p)
{
c[j].ty=1,f=0;
break;
}
}
if(f) ans+=a[i].p;
}
}
cout<<ans;
return 0;
}