社区讨论

求助!

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lo2yo4i0
此快照首次捕获于
2023/10/23 21:56
2 年前
此快照最后确认于
2023/10/23 21:56
2 年前
查看原帖
样例没过,不知道哪里错了
CPP
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
const int N=1e5+5;
struct ticket{
	int t;
	int pj;
};
queue<ticket>tic;
int main()
{
	int n,ans=0;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		if(a==0)
		{
			ticket t;
			t.pj=b;
			t.t=c;
			tic.push(t);
			ans+=b;
		}
		if(a==1)
		{
			bool running=1;
			while(running)
			{
				if(tic.empty()) break;
				{
					ticket t=tic.front();
					if(c-t.t>45) tic.pop();
					else break;
				}
			}
			for(int i=0;i<tic.size();i++)
			{
				if(tic.empty())
				{
					ans+=b;
					break;
				}
				ticket t=tic.front();
				tic.pop();
				if(t.pj>b) break;
				else tic.push(t);
				ans+=b;
			}
		}
	}
	cout<<ans;
	return 0;
}

回复

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

正在加载回复...