poj 2431

贪心

代码:

#include<iostream>
#include<fstream>
#include<queue>


using namespace std;

int n;

typedef struct e{
	int s,t;
	 bool friend operator <(const e &a,const e &b){
		return a.t<b.t;
	}
}e;

e a[10001];

int cmp(const void *a,const void *b){
	return (*(e*)a).s-(*(e*)b).s;
}

priority_queue<e> q;

void read(){
//	ifstream cin("in.txt");
	int i,j,k,L,P;
	cin>>n;
	for(i=0;i<n;i++)
		cin>>a[i].s>>a[i].t;
	cin>>L>>P;
	for(i=0;i<n;i++)
		a[i].s=L-a[i].s;
	qsort(a,n,sizeof(e),cmp);
	
	int ans=0;
	i=0;j=P;
	while(a[i].s<0) i++;

	while(i<n&&j<L){
		while(i<n&&a[i].s<=j)
		{
			q.push(a[i]);
			i++;
		}
		if(q.empty()) break;
		e b=q.top();
		j+=b.t;
		q.pop();
		ans++;
	}
	if(j<L) cout<<-1<<endl;
	else
		cout<<ans<<endl;


}

int main(){
	read();
	return 0;
}

posted on 2011-04-24 16:53  宇宙吾心  阅读(266)  评论(0)    收藏  举报

导航