90分求助
查看原帖
90分求助
845321
xuqihan楼主2024/3/17 10:45
#include<bits/stdc++.h>
using namespace std;
int v,n,c;
int k[100000],m[100000],f[100000],x; 
int main(){
    cin>>v>>n>>c;
    for(int i=1;i<=n;i++){
    	cin>>k[i]>>m[i];
	}
	for(int i=1;i<=n;i++){
    	for(int j=c;j>=m[i];j--){
    		f[j]=max(f[j],f[j-m[i]]+k[i]);
    		if(f[j]>=v){
    			x=max(x,c-j);
			}
		}
	}
	if(x==-1){
		cout<<"Impossible";
	}else{
		cout<<x;
	}
    return 0;
} 
2024/3/17 10:45
加载中...