#include <iostream>
using namespace std;
int n;
int cnt = 0;
int cost = 0;
int idx = 1;
bool flag = false;
struct TicketList{
int ticprice;
int tictime;
bool ticused = false;
}ticket[100010];
int main(){
scanf("%d",&n);
for(int i = 1;i <= n;i += 1){
int way,subprice,subtime;
scanf("%d",&way);
if(way == 0){
cnt++;
cin >> ticket[cnt].ticprice >> ticket[cnt].tictime;
cost += ticket[cnt].ticprice;
}
else{
cin >> subprice >> subtime;
flag = false;
while(ticket[idx].tictime - subtime > 45) idx++;
for(int j = idx;j <= cnt;j += 1){
if(ticket[j].ticprice > subprice && ticket[j].ticused == false){
ticket[j].ticused = true;
flag = true;
break;
}
}
if(flag == false) cost += subprice;
}
}
printf("%d",cost);
return 0;
}
题目描述