1 #include <iostream>
2 #include <cstdio>
3 #include <algorithm>
4 #include <cstring>
5 #include <cmath>
6 using namespace std;
7 int w[30],vis[30]; //w表示重量
8 int n,sum,ans,mim,m; //sum表示总重量,ans表示分给甲的重量。m表示分给乙的重量,mim表示最小结果
9
10 void dfs(int cur)
11 {
12 if(cur==n)
13 {
14 m=sum-ans;
15 if(abs(m-ans)<mim)
16 {
17 mim=abs(m-ans);
18 }
19 }
20 else
21 {
22 for(int i=cur;i<n;i++)
23 {
24 ans+=w[i];
25 vis[i]=1;
26 dfs(i+1);
27 vis[i]=0;
28 ans-=w[i];
29 }
30 }
31 }
32 int main()
33 {
34 int k;
35 while(~scanf("%d",&n))
36 {
37 sum=ans=0;
38 mim=100000;
39 for(int i=0;i<n;i++)
40 {
41 scanf("%d",&w[i]); sum+=w[i];
42 }
43 memset(vis,0,sizeof(vis));
44 if(n==1)
45 {
46 printf("%d
",w[0]); continue;
47 }
48 else
49 {
50 if(n==2)
51 {
52 printf("%d
",abs(w[0]-w[1])); continue;
53 }
54 else
55 dfs(0);
56 }
57 printf("%d
",mim);
58 }
59 return 0;
60 }
61