玄关
  • 板块灌水区
  • 楼主Max_LS
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/29 20:53
  • 上次更新2024/7/29 21:58:59
查看原帖
玄关
1227116
Max_LS楼主2024/7/29 20:53

P5661 0分测试点

#include<iostream>
#include<vector>
using namespace std;
int read(){
	int x=0;
	char ch=getchar();
	while(ch<'0'){
		ch=getchar();
	}
	while(ch>='0'){
		x=(x<<1)+(x<<3)+(ch-'0');
		ch=getchar();
	}
	return x;
}
void write(int x){
	if(x>9){
		write(x/10);
	}
	putchar(x%10+'0');
}
struct sale{
	int price,time;
};
struct out{
	int traffic,price,time;
};
vector<sale>a;
int main(){
	int n,ans=0;
	n=read();
	for(int i=0;i<n;i++){
		out b;
		b.traffic=read();
		b.price=read();
		b.time=read();
		if(b.traffic==0){
			sale c;
			c.price=b.price;
			c.time=b.time;
			a.push_back(c);
		}
		else if(b.traffic==1&&i>0){
			int result=0;
			bool d=0;
			A:
			for(int j=0;j<a.size();j++){
				if(result>=b.price){
					d=1;
					break;
				}
				else if(0<b.time-a[j].time&&b.time-a[j].time<=45&&a[j].price>=b.price){
					result=result+a[j].price;
					a.erase(a.begin()+j);
					goto A;
				}	
			}
			if(!d){
				ans=ans+b.price;
			}
		}
		else{
			ans=ans+b.price;
		}
	}
	write(ans);
	return 0;

}

2024/7/29 20:53
加载中...