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 }
  • 相关阅读:
    mysql 防止插入某个字段重复的值
    vue 脚手架的目录结构
    搭建Vue 脚手架项目
    flex 布局的页面
    Java List 排序问题
    maven 管理oracle jar
    JPA 注解
    PL/SQL Developer 不显示系统表,默认显示My objects
    jquery面试题
    web前端课程检测2
  • 原文地址:https://www.cnblogs.com/Missa/p/2723401.html
Copyright © 2011-2022 走看看