淘淘摘苹果
题目
这里有两点需要考虑
力气够不够
够不够到
陶陶想知道在 s<0s<0 之前最多能摘到多少个苹果。
所以得知力气优先考虑
从小到大排序 然后一个一个选知道没有力气
AC code
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int n,s;
int a,b;
long long ans=0;
struct node{
int xi;
int yi;
}p[5010];
bool cmp(node x,node y){
if(x.yi!=y.yi) return x.yi<y.yi;//首先按力气大小从小到大
else return x.xi<y.xi;
}
int main()
{
scanf("%d%d%d%d",&n,&s,&a,&b);
for(int i=1;i<=n;++i)
scanf("%d %d",&p[i].xi,&p[i].yi);
sort(p+1,p+1+n,cmp);
for(int i=1;i<=n;++i){
if(a+b>=p[i].xi && s-p[i].yi>=0){//够得到 也有力气
s-=p[i].yi;
++ans;
}
}
cout<<ans;
return 0;
}