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;
}
浙公网安备 33010602011771号