题目
#include<bits/stdc++.h>
using namespace std;
const int N=2005;
int n,h,sum,cnt,id[N];
struct A{
int a,b,c;
}s[N];
bool cmp(A a,A b){
if(a.c==b.c) return a.a<b.a;
return a.c<b.c;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i].a>>s[i].b;
s[i].c=s[i].a+s[i].b;
sum+=s[i].a;
}
cin>>h;
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
if(sum+s[i].b>=h) id[++cnt]=i,sum-=s[i].a;
else{
int maxn=0;
for(int j=1;j<=cnt;j++){
maxn=max(maxn,s[id[j]].a);
}
sum+=max(maxn-s[i].a,0);
}
}
cout<<cnt;
return 0;
}