45分,剩下TLE,求调,时间复杂度n^2
#include<iostream>
using namespace std;
struct type{
int first;
int second;
};
type q[100010];
int beginn=0;
int endd=0;
void push(type x){
q[endd++]=x;
}
type front(){
return q[beginn];
}
void pop(){
beginn++;
}
bool empty(){
return beginn==endd;
}
int main(){
int n;
cin>>n;
long long ans=0;
for(int i=1;i<=n;i++){
int opt,p,t;
cin>>opt>>p>>t;
if(opt==0){
ans+=p;
push({p,t});
}else{
bool flag=1;
for(int i=beginn;i<=endd;i++){
if(q[i].first==0x7ffffff&&q[i].second==0x7ffffff) continue;
type k=q[i];
int p1=k.first;
int t1=k.second;
if(t-t1<=45&&p1>=p){flag=0; q[i]={0x7ffffff,0x7ffffff}; break;}
}
if(flag==1){
ans+=p;
}
}
}
cout<<ans;
return 0;
}