|
|
back to boardSolved using brute force approach #include<bits/stdc++.h> using namespace std; bool b[22]; void binary_number(int a,int n){ for(int i=0;i<n;i++){ if(a%2==0)b[i]=0; else b[i]=1; a/=2;
} } int main() { int n; long int a[20],s1,s2,da,bn,dn; cin >> n; for(int i=0;i<n;i++){ cin >> a[i]; s1+=a[i]; } dn=s1; bn=(1<<n); //binary number 2^n for(int i=0;i<bn;i++){ binary_number(i,n);
s1=0;s2=0; for(int i=0;i<n;i++){ if(b[i]==0)s1+=a[i]; else s2+=a[i]; }
da=abs(s1-s2); dn=min(da,dn); if(dn==0)break; }
cout<<dn<<endl; return 0; } |
|
|