为什么RE了啊
查看原帖
为什么RE了啊
1282782
Christian_楼主2024/3/19 19:17
#include <bits/stdc++.h>
using namespace std;

const int N=1010;
int a[N],f[N]; //填满i至少需要多少个数字
int n;

int main(){
	scanf("%d",&n);
	int sum=0,alsum=0;
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		if(a[i]<0) sum+=-1*a[i];
		alsum+=a[i];
	}
	if(alsum<0){
		printf("Impossible\n");
		return 0;
	}
	for(int i=1;i<=sum;i++) f[i]=1e9;
	for(int i=1;i<=n;i++){
		if(a[i]>0)
		for(int j=sum;j>=a[i];j--){
			f[j]=min(f[j],f[j-a[i]]+1);
		}
	}
	n-=f[sum];
	printf("%d\n",n);
	return 0;
}
2024/3/19 19:17
加载中...