90分求助
查看原帖
90分求助
536098
Alan_W楼主2022/7/27 11:21
#include<bits/stdc++.h>
using namespace std;
int n,p,s;
int f[30300];
struct node
{
	int w,v;
}a[10010];
bool cmp(node x,node y)
{
	return x.w<y.w;
}
int main()
{
	cin>>n>>p>>s;
	for(int i=1;i<=n;i++)	cin>>a[i].w>>a[i].v;
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++)
	{
		for(int j=s;j>=a[i].w;j--)	f[j]=max(f[j],f[j-a[i].w]+a[i].v);
		if(f[s]>=p)
		{
			cout<<a[i].w;
			return 0;
		}
	}
	cout<"No Solution!";
	return 0;
}
2022/7/27 11:21
加载中...