好吧,那也用不到动态规划吧(虽然我的代码比较长)
#include <iostream>
#include <algorithm>
using namespace std;
int n,a,b,s,x,y,a2[10000][3],sum=0;
int main()
{
int i,j,k;
cin>>n>>s>>a>>b;
if(n==0 && s==0 && a==0 && b==0)
{
cout<<0;
return 0;
}
for(i=1;i<=n;i++)
{
cin>>a2[i][1]>>a2[i][2];
if(a2[i][1]>a+b)
{
a2[i][2]=1001;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
if(a2[j][2]>a2[j+1][2])
{
swap(a2[j][2],a2[j+1][2]);
swap(a2[j][1],a2[j+1][1]);
}
}
}
i=1;
while(s>=0 && i<=n)
{
s-=a2[i][2];
sum++;
i++;
}
sum--;
cout<<sum;
return 0;
}