爆零加一
查看原帖
爆零加一
1425959
zgmbsydmz楼主2025/1/10 22:04
#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是总花费。个人思路是将优惠券存在数组中,每次乘公交车进行一次遍历。

样例在自己的电脑上试的是能过的。谢谢~。

可能不在线,但上线后必关注(郑重承诺)。

2025/1/10 22:04
加载中...