#include"iostream"
#include"algorithm"
#include"vector"
#include"queue"
#include"map"
#include"cstdio"
using namespace std;
struct cmp
{
int a,b;
bool operator < (const cmp&bb) const
{
return a>bb.a;
}
}cm[10100];
int main()
{
priority_queue <int> q;
int a,m,n,i,g=0,d;
scanf("%d",&a);
for(i=0;i<a;i++)
{
scanf("%d%d",&cm[i].a,&cm[i].b);
}
scanf("%d%d",&m,&n);
sort(cm,cm+a);
cm[a].a=0;
cm[a].b=0;
for(i=0;i<=a;i++)
{
d=m-cm[i].a;
n=n-d;
while(n<0)
{
if(q.empty())
{
printf("-1\n");
return 0;
}
n=n+q.top();
q.pop();
g++;
}
m=cm[i].a;
q.push(cm[i].b);
}
printf("%d\n",g);
return 0;
}
poj-2431
最新推荐文章于 2022-01-22 19:04:55 发布