求助!错一个点
查看原帖
求助!错一个点
1060298
GDL001楼主2023/8/12 19:39
#include<bits/stdc++.h>
using namespace std;
int n,m,k,r,a[150],dp[105],t;
struct eee{
	int mark,ti;
}hw[505];
int main(){
	cin>>n>>m>>k>>r;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+n+1);	
	for(int i=1;i<=m;i++)
		cin>>hw[i].ti;
	for(int i=1;i<=m;i++)	
		cin>>hw[i].mark;
	//dp[0]=1;	
	for(int i=1;i<=m;i++)
        for(int j=r;j>=hw[i].ti;j--)
			dp[j] = max(dp[j],dp[j-hw[i].ti] + hw[i].mark);				
	for(int i=1;i<=r;i++)
		if(dp[i]>=k){
			t=r-i;
			break;
		}
	//cout<<t<<" ";	
	int ct=0;
	while(t>0&&ct<=n+1)
		t-=a[++ct];
	cout<<ct-1;	
	return 0;
}


2023/8/12 19:39
加载中...