题解
【基础】公交换乘
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct pp{ int p;//优惠卷的金额 int t;//时间 int b;//标记是否使用 }; pp q[101000]; int ans,n,front,rear;//总价格 int main(){ cin>>n; while(n--){ int a,b,c; cin>>a>>b>>c; if(a==0){ ans+=b; q[rear++]={b,c,0}; }else{ while(c-q[front].t>45&&front!=rear){ front++;//优惠券报废 时间超时 } //接下来就是要去找适合的优惠券 int flag=0;//标记还没有找到 for(int i=front;i<rear;i++){ if(q[i].p>=b&&q[i].b!=1){ flag=1; q[i].b=1; break; } } if(flag==0){ ans+=b; } } } cout<<ans; return 0; }
- 1