#include<iostream>
#include<algorithm>
using namespace std;
int p[100005],t[100005],l=0,r=1,a,b,c;
long long num;
int main(){
int n;
cin>>n;
while(n--){
cin>>a>>b>>c;
if(a==0){
num+=b;
p[r]=b;
t[r]=c+45;
r++;
}
else{
for(int i=l;i<=r;i++){
if(t[i]<c&&t[i]!=0){
l++;
continue;
}
if(p[i]>=b&&i==l+1){
l++;b=0;
break;
}
else if(p[i]>=b){
p[i]=0;b=0;
break;
}
}
num+=b;
}
}
cout<<num<<endl;
return 0;
}
请求哪位大佬帮忙看一下。
p[]是优惠券的价格,t[]是优惠券的有效时间,a,b,c对应题目的输入的三个整数,num是总花费。个人思路是将优惠券存在数组中,每次乘公交车进行一次遍历。
样例在自己的电脑上试的是能过的。谢谢~。
可能不在线,但上线后必关注(郑重承诺)。