#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
请大佬看看