可以参考一下我的代码。。。
```cpp
#include<cstdio>
#include<algorithm>
using namespace std;
struct node{int h,w;}a[5001];
bool cmp(node a, node b)
{return (a.w < b.w)||(a.w == b.w && a.h < b.h);}
int n, s, x, b, ans=0;
int main() {
scanf("%d%d%d%d",&n,&s,&x,&b);b+=x;
for(int i=1; i<=n; i++) scanf("%d%d",&a[i].h,&a[i].w);
sort(a+1,a+n+1,cmp);
for(int i=1; i<=n; i++) if(a[i].h <= b ) if(a[i].w <= s) ans++,s-=a[i].w;else break;
printf("%d",ans);
return 0;
}
```
by 青衫白叙 @ 2017-09-25 18:55:59