P2107 小Z的AK计划

Aimee

很水的题目

完全对不起他的颜色

按照顺序排一下,然后能放就放,防不了,就把最大的拿出来再说

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue> 
#define int long long
using namespace std;
int n;
int x[100001];
priority_queue <int> q;
struct b{
	int pl;
	int ti;
} ro[100001];
int m;
int Aimee;
bool cmp(b x,b y){
	return x.pl<y.pl;
}
signed main(){
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;++i){
		scanf("%lld%lld",&ro[i].pl,&ro[i].ti);
	}
	sort(ro+1,ro+n+1,cmp);
	for(int i=1;i<=n;++i){
		m-=ro[i].pl-ro[i-1].pl;
		if(m<0)
		break;
		if(m>=ro[i].ti){
			q.push(ro[i].ti);
			m-=ro[i].ti;
			Aimee++;
		}else{
			if(q.empty())
			continue;
			if(m+q.top()>ro[i].ti){
				m=m+q.top()-ro[i].ti;
				q.pop();
				q.push(ro[i].ti);
			}else{
				continue;
			}
		}
	}
	cout<<Aimee<<endl;
	return 0;
}

原文地址:https://www.cnblogs.com/For-Miku/p/13934084.html