10分求助
查看原帖
10分求助
322705
Mr_Ender楼主2020/8/22 11:09
#include<bits/stdc++.h>
using namespace std;
int v,n,c,k[10005],m[10005],f[10005],flag=0;
int main(){
	cin>>v>>n>>c;
	for(int i=1;i<=n;i++){
		cin>>k[i]>>m[i];
	}
    f[0]=0;
	for(int i=1;i<=n;i++){
		for(int j=c;j>=0;j--){
			if(j-m[i]>=0){
				f[j]=max(f[j],f[j-m[i]]+k[i]);
			}
		}
    }
	for(int i=1;i<=c;i++){
		if(f[i]>=v){
			cout<<c-i;
			flag=1;
		}
	}
	if(flag==0){
		cout<<"Impossible";
	}
	return 0;
} 
2020/8/22 11:09
加载中...