P5661 [CSP-J2019] 公交换乘
  • 板块题目总版
  • 楼主Mike_Evans
  • 当前回复1
  • 已保存回复2
  • 发布时间2024/9/7 13:12
  • 上次更新2024/9/7 17:12:31
查看原帖
P5661 [CSP-J2019] 公交换乘
1364340
Mike_Evans楼主2024/9/7 13:12
#include <bits/stdc++.h>
using namespace std;
#define ll long long 
long long ans;
queue<int> yu;
queue<ll> sh;

struct node{
	int f;
	int jia;
	ll shi;
	
}a[100007];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].f>>a[i].jia>>a[i].shi;
	}
	for(int i=1;i<=n;i++)
	{
		if(a[i].f==1 && yu.empty()) 
		{
			ans+=a[i].jia;
			continue;
		}
		else if (a[i].f==1 && !yu.empty())
		{
			bool pd=0;	
				while(a[i].shi-sh.front()>45 && !sh.empty())
					{
						sh.pop();
						yu.pop();							
					}
				int c=yu.size();	
				while(c && !yu.empty())
						{	
							if(yu.front()>=a[i].jia)
							{
								sh.pop();
								yu.pop();
								pd=1;
								break;
							}
							else 
							{
									sh.push(sh.front());
									yu.push(yu.front());
									sh.pop();
									yu.pop();
							}
							c--;
						}
			if(pd==0) ans+=a[i].jia;
			
		
			
		}
		else if(a[i].f==0)
		{
			ans+=a[i].jia;
			yu.push(a[i].jia);
			sh.push(a[i].shi);
		} 
		
	}
	cout<<ans;
	return 0;
}

why????????????????????????????????????????? 50!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2024/9/7 13:12
加载中...