悬赏关注*1,全WA
查看原帖
悬赏关注*1,全WA
823725
EZAIJ楼主2024/3/11 20:33

大题思路是以N作为0,小于N的表示是负数,大于N的表示是正数。最后的出的结果也通过样例了

#include<bits/stdc++.h>
using namespace std;

#define N 100010

int a[110],n,f[2*N];

int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		f[N-a[i]]=1;
	}	
	f[N]=1;
	int ans=0;
	for(int i=1;i<=n;i++)
		for(int j=2*N;j>=a[i];j--)
			if(f[j-a[i]]&&f[j]==0){
				f[j]=1;
				if(j>N)
					ans++;
			}
	printf("%d",ans);			
	return 0;
}
2024/3/11 20:33
加载中...