社区讨论

80分求助!!!

P5661[CSP-J 2019] 公交换乘参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo14kvzn
此快照首次捕获于
2023/10/22 15:06
2 年前
此快照最后确认于
2023/11/02 14:38
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int n,x,q,q1=1,price;
const int N=1e6+100;
bool k;
int a[N],b[N],c[N];
struct sub{
	int timer;
	int money;
}way[N];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i]>>b[i]>>c[i];
	for(int i=1;i<=n;i++){
		if(a[i]==0){
			price+=b[i],q++;
			way[q].timer=c[i];
			way[q].money=b[i];
		}
		else if(a[i]==1){
			if(q==0){
				price+=b[i];
			}else if(q>0){
				for(int j=1;j<=q;j++){
					if(b[i]<=way[j].money&&c[i]-way[j].timer<=45){
						x=j,k=true;
						break;
					}
				}
				if(k==false){
					price+=b[i];
				}
				else if(k==true){
					for(int j=x;j<q;j++){
						way[j].money=way[j+1].money;
						way[j].timer=way[j+1].timer;
					}		
					k=false,x=0,q--;		
				}
			}
		}
	}
	cout<<price<<endl;
	
	return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...