这是出了多刁钻的样例啊,自测样例和题目样例都过了,还是全wa
查看原帖
这是出了多刁钻的样例啊,自测样例和题目样例都过了,还是全wa
346308
Soshine_溯闪楼主2020/11/4 22:21
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
#include <cstdio>
#include <queue>
#include <map>
#include <iomanip>
#include <set>
#include <vector>
#include <sstream>
using namespace std;
const int maxn=100005;
struct node{
	int k,cost,time;
}a[maxn];
struct Free{
	int t,m;
}f[maxn];
int n,num=1,ans,used=1; 
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i].k>>a[i].cost>>a[i].time;
	for(int i=1;i<=n;i++){
		if(a[i].k==0) {
			ans+=a[i].cost;
			f[num].m=a[i].cost;
			f[num++].t=a[i].time;
		}
		else if(a[i].k==1){
			int key=used,no=used;
			while((a[i].time-f[key].t>45||a[i].cost>f[key].m)&&(key<num)) {
				if(a[i].time-f[key].t>45) no++;
				key++;
			}
			if(a[i].time-f[key].t<=45&&a[i].cost<=f[key].m) used=no+1;
			else {used=no+1;ans+=a[i].cost;}
		}
	}
	cout<<ans;
	return 0;
}
2020/11/4 22:21
加载中...