|  | 
|  | 
| back to board | God Help ME !!! Why ? IN which case my programe get WA ?plz Help me...
 //
 //
 
 #include <iostream>
 #include <cstdlib>
 
 using namespace std;
 
 int main(){
 
 long int *w;
 int n , tmp;
 cin >> n;
 if(n>20)
 exit(0);
 w = new long int [n];
 for(int i =0 ; i < n ; i++)
 cin >>w[i];
 
 // bubble sort
 for(int i = 0 ; i < n-1 ; i++)
 {
 for(int j =i+1 ; j < n ; j++)
 {
 if(w[i] < w[j])
 {
 tmp = w[i];
 w[i] = w[j];
 w[j] = tmp;
 }
 }
 }
 
 long int minimal = w[0];
 for(int i = 1 ; i < n ; i++)
 {
 if(minimal > w[i])
 minimal-=w[i];
 else
 minimal =w[i] - minimal;
 }
 
 
 cout << endl << minimal << endl;
 
 return 0;
 }
Re: God Help ME !!! Why ? 52
 3
 2
 3
 2
 
 right answer is 0
Re: God Help ME !!! Why ? Posted by JKTM  10 Apr 2017 03:09How?Re: God Help ME !!! Why ? 3+3=62+2+2=6
 ????
Re: God Help ME !!! Why ? #include <bits/stdc++.h>using namespace std;
 bool b[18];
 int n;
 void get(int a,int n)
 {
 for ( int i= 0; i < n; i ++)
 {
 if (a%2==0) b[i]=false;
 else b[i]=true;
 a/=2;
 }
 }
 int main ()
 {
 int n,a[18],dn;
 __int64 s1=0,s2=0,dx,dk;
 cin >> n;
 for ( int i = 0; i < n; i++)
 {
 cin >> a[i];
 s1+=a[i];
 }
 dx=abs(s1-s2);
 dn=(1<<n);
 s1=0;
 for (int i = 1; i < dn; i++)
 {
 get(i,n);
 s1=0;s2=0;
 for (int j=0;j<n;j++)
 {
 if (b[j]) s2=s2+a[j];
 else s1=s1+a[j];
 }
 dk=abs(s1-s2);
 dx=min(dx,dk);
 }
 cout<<dx;
 }
 | 
 | 
|