这咋写呀?。。。。。。。。

好吧,那也用不到动态规划吧(虽然我的代码比较长)

#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;
}
1 个赞