7-12ac,其余wa
查看原帖
7-12ac,其余wa
772828
lliou楼主2023/10/20 19:10
#include<iostream>
#include<queue>
using namespace std;
int n,p,t,tra,ans,z,cs;
int main(){
	queue<int> yh;
	queue<int> price;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d %d %d",&tra,&p,&t);
		if(tra==0){
			yh.push(t);
			price.push(p);
			z++;//优惠券总数 
			ans+=p;
		}
		else{
			while(yh.empty()!=1&&t-yh.front()>45){
				yh.pop();
				price.pop();
				z--;
			}//超时优惠券出列 
			if(yh.empty()==1) ans+=p;
			else if(p<=price.front()){
				yh.pop();
				price.pop();
			}//时间价格都满足 
			else if(p>price.front()){
				while(z>0){
					if(price.front()>=p&&cs!=1){//找到优惠券就停止搜索 
						yh.pop();
						price.pop();
						z--;
						cs=1;
					}
					else{
						yh.push(yh.front());
						price.push(price.front());
						yh.pop();
						price.pop();
					}
					z--;
				}//循环队列,找到优惠券后仅重排队列 
				if(cs==0) ans+=p;
			}
		}
	}
	printf("%d",ans);
}

o.O?

2023/10/20 19:10
加载中...