2 条题解
-
2
下面是完整的AC代码 如果有不清楚的地方请借助代码注释理解
#include<bits/stdc++.h>// 引入 C++ 万能头 using namespace std; const int Max=100005; //建立结构体 struct Tickey { int dollar,use,time; }q[Max]; int main() { int head=0,n,tail=0,cost=0; cin >> n; for(int i = 0;i < n;i++) { int type,time,dollar; cin >> type >> dollar >> time;//输入 //判断交通工具类型 if(type==0) { cost += dollar; q[tail].time+=time + 45;//过期时间=购买时间+45分钟 q[tail++].dollar+=dollar;//由于是地铁,无法优惠,直接购买 } else { //先用一个循环把过期的票扔掉 while(head < tail&&q[head].time<time) { head++; } bool find=false; for(int j=head;j<tail;j++) { //如果优惠票合适,标记此票用过,标记已使用优惠票 if(q[j].dollar>=dollar&&q[j].use==0) { q[j].use=1; find=true; break; } } //如果没有合适的优惠票,就自己掏钱买吧 if(!find) { cost+=dollar; } } } cout << cost; return 0; }
写题解不易,还望各位点个赞!
信息
- ID
- 1795
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 35
- 已通过
- 14
- 上传者