蒟蒻求助
查看原帖
蒟蒻求助
929529
wym_2012楼主2023/9/1 15:07
#include<bits/stdc++.h>
using namespace std;
int n,trainsport[100009],p[100009],t[100009],ans;//行数 出行方式 票价 时间 
bool con;
struct coupon{
	int p,t,ok;
}c[100001];
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d%d%d",&trainsport[i],&p[i],&t[i]);
	for(int i=1;i<=n;i++)
	{
		if(trainsport[i]==0)//地铁出行 
		{
			ans+=p[i];//计算价钱 
			c[i].p=p[i];//票价录入优惠券  
			c[i].t=t[i];//时间录入优惠券 
			c[i].ok=1;
		}
		else//公交出行 
		{
			for(int j=1;j<=i;j++)
			{
				if(t[i]-c[j].t<=45)//判断时间是否小于等于45分 
				{
					if(c[j].p>=p[i])//判断票价是否小于等于地铁票价 
					{
						if(c[j].ok==1)//优惠券是否未被使用 
						{
							c[j].ok=0;//该优惠券失效 
							con=true;
							continue;//跳出里层循环 
						}
					}
				}
			}
			if(con==true)
				continue;//跳出外层循环 
			ans+=p[i];//计算价钱
		}
	}
	printf("%d",ans);
	return 0;
}

第一个样例的结果只有27
看了下发现for循环只执行了3次
结果分别为10 22 27
请大佬看看

2023/9/1 15:07
加载中...