zoukankan      html  css  js  c++  java
  • zoj 3657

     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 }
  • 相关阅读:
    Android ViewPager滑动导航菜单
    JQ操作select项
    radio控件name相同选出等于指定的value然后选中
    JQ随笔
    文本框宽度自动适应文本宽度<
    FindControl 找控件
    验证字母不符合替换成空
    JQ获取当前触发事件控件ID
    Repeater绑定对应行的dropdownlist
    有向图强连通分量的Tarjan算法
  • 原文地址:https://www.cnblogs.com/Missa/p/2723401.html
Copyright © 2011-2022 走看看