求助!!!!!
查看原帖
求助!!!!!
263122
Sean树召楼主2021/9/14 18:49

为什么是30分?

#include<bits/stdc++.h>
using namespace std;
int n,head,tail,sum;
struct T{
	bool f;
	int t,p;
}a[100005];
struct H{
	int t1,p1;
	bool u;
}ticket[100005];
int main(){
	cin>>n;
	head=tail=1;
	for(int i=1;i<=n;i++){
		cin>>a[i].f>>a[i].p>>a[i].t;
		if(a[i].f==0){
			ticket[tail].p1=a[i].p;
			ticket[tail++].t1=a[i].t;
			sum+=a[i].p;
		}
		if(a[i].f==1){
			bool flag=0;
			for(int j=head;j<=tail;j++){
				if(ticket[j].u) continue;
				if(a[i].t-ticket[j].t1>45){
					head=j;
				}
				else if(a[i].p<=ticket[j].p1){
					ticket[j].u=1;
					flag=1;
					break;
				}
			}
			if(flag==0){
				sum+=a[i].p;

			}
		}
	}
	cout<<sum;
	return 0;
}

谢谢!!!!

2021/9/14 18:49
加载中...