?
查看原帖
?
760850
QWQ_jyc楼主2023/2/24 19:37
#include<bits/stdc++.h>
using namespace std;
long long n,l,y,s;
long long dp[114514],w[114514],v[114514];
int main(){
  	cin>>l>>n>>y;
  	for(int i=1;i<=n;i++){
  	    cin>>w[i]>>v[i];
  	    s+=v[i];
  	}
  	if(s<l){
		cout<<"Impossible"<<endl;
		return 0;
	}
	for(int i=1;i<=n;i++){
  		for(int j=y;j>=w[i];j--){
  				dp[j] = max(dp[j - w[i]] + v[i] , dp[j]);
		}
	}
  	for(int i=0;i<=l;i++){
		if(dp[i]>=l){
			cout<<y-i<<endl;
			return 0;
		}
	}
  	return 0;
}
2023/2/24 19:37
加载中...