#include<iostream>
#include<list>
using namespace std;
typedef struct TrafficNumber
{
int price;
int startTime;
TrafficNumber(int price, int startTime):price(price),startTime(startTime){}
} TrafficNumber;
int main()
{
int count;
list<TrafficNumber> coupon;
cin>>count;
//总的花费
int totalCost = 0;
while(count--)
{
int type;
int price;
int startTime;
cin>>type>>price>>startTime;
//坐地铁必须要付钱
if (type == 0)
{
totalCost += price;
coupon.push_back(TrafficNumber(price, startTime));
}
else
{
bool findCoupon = false;
list<TrafficNumber>::iterator pCoupon;
for(pCoupon = coupon.begin(); pCoupon!= coupon.end();)
{
TrafficNumber trafficNumber = *pCoupon;
if(trafficNumber.startTime + 45 < startTime)
{
// 已经超时的直接剔除
pCoupon=coupon.erase(pCoupon);
continue;
}
if (trafficNumber.price>=price)
{
// 消费过的优惠券剔除
findCoupon = true;
pCoupon=coupon.erase(pCoupon);
break;
}
pCoupon++;
}
if (!findCoupon)
{
totalCost += price;
}
}
}
cout<<totalCost<<endl;
return 0;
}
1120 公交换乘
最新推荐文章于 2024-03-03 20:09:46 发布