爆0求助
查看原帖
爆0求助
439327
南瓜桐楼主2021/9/30 20:07
#include<iostream>
#include<cstdio>
using namespace std;
int ans=0;
struct node{
	int p;
	int t;
}d[200010];
int start=0,end1=1;
int n;
int main(){
	//freopen("transfer.in","r",stdin);
	//freopen("transfer.out","w",stdout);
 	cin>>n;
 	int way,price,time;
 	for(int i=1;i<=n;i++){
 		cin>>way;
 		if(way==0){
 			//subway
 			cin>>price>>time;
 			start++;
 			d[start].p=price;
 			d[start].t=time;
 			ans+=price;
 		}else{
 			//bus
 			cin>>price>>time;
			while(time-d[end1].t>45){
				end1++;
			}
			if(d[end1].p<=price){
				bool find=false;
				for(int i=end1;i<=start;i++){
					if(d[i].p>=price){
						find=true;
						d[i].t=-46;
						break;
					}
				}
				if(find==false){
					ans+=price;
				}
			}
 		}
 	}
 	cout<<ans;
	return 0;
}
2021/9/30 20:07
加载中...