30分求调
查看原帖
30分求调
741120
_O__o_楼主2024/8/19 20:59
#include<bits/stdc++.h>

using namespace std;
struct subcar{
	bool car;//是否是汽车 
	int price;//该花费 
	int time;//时间 
}arr[100001];
struct coupon_{//优惠券 
	int time;//有效时间 
	int price;//金额 
}coupon[100001];
signed main(){
	int n;//记录数 
	int sum;//花费 
	int numc;//优惠券数量
	int numn;//numn指向第一张可用优惠券,相当于头指针
	int nums;//公交车数 
	sum = numc =  nums = 0;//防垃圾数据 
	cin >> n; 
	numn=1;
	for(int i = 0;i < n;i++){//输入 
		int a,b,c;
		cin >> a >> b >> c;
		if(!a){
			numc++;
			coupon[numc].price = b;
			coupon[numc].time = c;
			sum += b;
		} else{
			nums++;
			arr[nums].car = a,
			arr[nums].price = b,
			arr[nums].time = c;
			sum += arr[nums].price;
			for(int j = numn;numn<=numc;j++){
				if(abs(arr[nums].time - coupon[j].time) <= 45){
					if(arr[nums].price <= coupon[j].price){
						sum -= arr[nums].price;
						numn++;
						break;
					}
				}else
					numn++;
			}
				
		}
	}	
	cout << sum;
	return 0;
}

2024/8/19 20:59
加载中...