RE求助
查看原帖
RE求助
542390
wumingwei楼主2024/3/14 12:59
#include<bits/stdc++.h>
using namespace std;
const int N=3000,M=1e8;
int v[N],w[N],f[M],Max,sum;
int main()
{
	int n,l;
	cin>>n>>l;
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d",&v[i],&w[i]);
		sum+=v[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=sum;j>=v[i];j--)
		{
			f[j]=max(f[j],f[j-v[i]]+w[i]);
			Max=max(Max,f[j]);
		}
	}
	if(Max<l)cout<<"no solution";
	else
	{
		for(int i=0;i<=sum;i++)
		{
			if(f[i]>=l)
			{
				cout<<i;
				return 0;
			}
		}
	}
	return 0;
}
2024/3/14 12:59
加载中...