思想是对了,但TLE还是躲不过。。。这......
#include<cstdio>
#include<iostream>
using namespace std;
struct gongjiao
{
bool fangfa;
int qian;
long long time;
};
gongjiao a[100005];
struct gong
{
int huan;
int chi;
};
gong b[100005];
int main()
{
int n,sum=0,ans=0,shu=0,ans2=0;
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>a[i].fangfa>>a[i].qian>>a[i].time;
}
for(int i=1;i<=n;++i)
{
if(a[i].fangfa==0)
{
ans++;
ans2++;
shu++;
b[shu].huan=a[i].qian;
b[shu].chi=i;
sum=sum+a[i].qian;
}
if(a[i].fangfa==1)
{
if(ans2!=0)
{
int t=0;
for(int l=1;l<=ans;++l)
{
if(b[l].huan>=a[i].qian&&b[l].huan!=0&&a[i].time-a[b[l].chi].time<=45)
{
b[l].huan=0;
ans2--;
t=1;
break;
}
}
if(t==0)
{
sum=sum+a[i].qian;
}
}
else
{
sum=sum+a[i].qian;
}
}
}
cout<<sum;
return 0;
}