很简单的搜索
每一个数都有放和不放两种
然后暴力就好了
然后代码
#includeusing namespace std; long long a[25]; int read(){//一个快读 int x=0,f=1; char ch=getchar(); while(!isdigit(ch)){ if(ch=='-') f=-1; ch=getchar(); } while(isdigit(ch)){ x=x*10+ch-'0'; ch=getchar(); } return x*f; } long long ans=INT_MAX;int n; long long s,sum1,sum2; void dfs(int x){//搜索 if(x>n){ sum2=s-sum1; ans=min(ans,abs(sum2-sum1)); return; }else{ sum1+=a[x];//放 dfs(x+1); sum1-=a[x];//不放 dfs(x+1); } } int main (){ n=read(); for(int i=1;i<=n;i++){ a[i]=read(); s+=a[i]; } dfs(1); cout<



