给关
查看原帖
给关
1227116
Max_LS楼主2024/7/31 20:43
#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;
vector<out>b;
int main(){
	int n,ans=0,k=0;
	n=read();
	for(int i=0;i<n;i++){
		out c;
		c.traffic=read();
		c.price=read();
		c.time=read();
		b.push_back(c);
		if(c.traffic==0){
			sale d;
			d.price=c.price;
			d.time=c.time;
			a.push_back(d);
		}
	}
	for(int i=0;i<n;i++){
		int result=0;
		if(b[i].traffic==1&&i>0){
			bool d=0;
			for(int j=0;j<a.size();j++){
				if(result>=b[i].price){
					d=1;
					break;
				}
				else if(0<b[i].time-a[j].time&&b[i].time-a[j].time<=45&&a[j].price>=b[i].price){
					result=result+a[j].price;
					a.erase(a.begin()+j);
				}	
			}
			if(d==0){
				ans=ans+b[i].price;
			}
		}
		else{
			ans=ans+b[i].price;
		}
	}
	write(ans);
	return 0;
}
2024/7/31 20:43
加载中...