0分求调
查看原帖
0分求调
695141
little_QL楼主2024/5/21 12:55
#include<bits/stdc++.h>
using namespace std;
const int N=510;
int n,m,k,r;
int sum=0,t;
int a[N],b[N],sc[N];
int dp[N];
int main()
{
	cin>>n>>m>>k>>r;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+1+n);
	for(int i=1;i<=m;i++)
	{
		cin>>b[i]>>sc[i];
	}
	for(int i=1;i<=n;i++)
	{
        for(int j=r;j>=b[i];j--)
        {
        	dp[j]=max(dp[j],dp[j-b[i]]+sc[i]);
		}
	}
	for(int i=1;i<=r;i++)
	{
		if(dp[i]>=k)
		{
			t=r-i;
			break;
		}
	}
	for(int i=1;i<=n;i++)
	{
		t-=a[i];
		if(t<0)
		{
			break;
		}
		sum++;
	}
	cout<<sum<<endl;
	return 0;
}
2024/5/21 12:55
加载中...