1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 6 using namespace std; 7 8 int n; 9 int sum,w[15]; 10 int rest[151]; 11 12 int main() 13 { 14 while(scanf("%d",&n) != EOF) 15 { 16 sum=0; 17 int re=0,tag=0; 18 memset(rest,0,sizeof(rest)); 19 for(int i=0;i<n;i++) 20 { 21 scanf("%d",&w[i]); 22 sum+=w[i]; 23 } 24 sort(w,w+n); 25 switch(n) 26 { 27 case 0: 28 case 1: 29 case 2: 30 case 3: 31 puts("1024"); 32 break; 33 case 4: 34 for(int i=0;i<=1 && !tag;i++) 35 for(int j=i+1;j<=2 && !tag;j++) 36 for(int k=j+1;k<=3 && !tag;k++) 37 if((w[i]+w[j]+w[k])%1024==0)//很奇怪这里写成 if((w[i]+w[j]+w[k])&&(w[i]+w[j]+w[k])%1024==0)会wa。。难道 4 0 0 0 0精灵也让过? 38 tag=1; 39 if(tag) 40 puts("1024"); 41 else 42 { 43 for(int i=0;i<=2;i++) 44 for(int j=i+1;j<=3;j++) 45 rest[re++]=sum-w[i]-w[j]; 46 for(int i=0;i<re;i++) 47 rest[i]=(rest[i]-1)%1024+1; 48 sort(rest,rest+re); 49 printf("%d\n",rest[re-1]); 50 } 51 break; 52 case 5: 53 for(int i=0;i<=2 && !tag;i++) 54 for(int j=i+1;j<=3 && !tag;j++) 55 for(int k=j+1;k<=4 && !tag;k++) 56 if((w[i]+w[j]+w[k])%1024==0) 57 { 58 tag=1; 59 rest[re++]=sum-w[i]-w[j]-w[k]; 60 } 61 if(!tag) 62 puts("0"); 63 else 64 { 65 for(int i=0;i<re;i++) 66 rest[i]=(rest[i]-1)%1024+1; 67 sort(rest,rest+re); 68 printf("%d\n",rest[re-1]); 69 70 } 71 break; 72 } 73 } 74 return 0; 75 }