#include<bits/stdc++.h>
using namespace std;
long long n;
long long way[100010],price[100010],time[100010];
// 乘车方式, 乘车票价, 乘车时间
queue<long long> q1;//优惠票时间队列
queue<long long> q2;//优惠票价钱队列
long long money, tic;
// 花费的总钱数,优惠票总数
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>way[i]>>price[i]>>time[i];
if(way[i]==0){//坐地铁
money+=p[i];
q1.push(time[i]);//乘车时间入队
q2.push(price[i]);//乘车票价入队
tic++;//优惠票数量++
}
while(time[i]-q1.front(0>45) && !q1.empty){//筛掉超时的票
q1.pop();
q2.pop();
tic--;
}
int f=0;//优惠票使用状态
long long ticd=tic;//优惠票备用数量
if(way==1){//坐公交
if(!q1.empty() && !q2.empty()){//判断队列非空
for(int j=1;j<=ticd;j++){
if(f==0 && price[i]<=q2.front){//优惠票可以使用
f=1;
q1.pop();
q2.pop();
tic--;
}else{//不能使用
q1.push(q1.front());
q2.push(q2.front());
q1.pop();
q2.pop();
}
}
}else{//没有优惠票,肯定要花钱
money+=price[i];
continue;
}
if(f==0){//假设没有使用优惠票,要花钱
sum+=price[i];
}
}
}
cout<<sum;
return 0;
}
file:///C:/Users/Administrator/Desktop/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20231004120959.png