zoj_3657,12年长春站c题,模拟

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
    int n;
    int a[6];
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        if(n<4) printf("1024\n");
        else if(n==4)
        {
            int ans=0;
            for(int i=0;i<4;i++)
                for(int j=i+1;j<4;j++)
                    for(int k=j+1;k<4;k++)
                    if((a[i]+a[j]+a[k])%1024==0)
                    ans=1024;
            for(int i=0;i<4;i++)
                for(int j=i+1;j<4;j++)
                {
                    if((a[i]+a[j])%1024==0&&a[i]+a[j]!=0)
                        ans=1024;
                    if((a[i]+a[j])%1024>ans)
                    ans=(a[i]+a[j])%1024;
                }
                printf("%d\n",ans);
        }
        else if(n==5)
        {
            int ans=0;
            for(int i=0;i<5;i++)
                for(int j=i+1;j<5;j++)
                    for(int k=j+1;k<5;k++){
                        if((a[i]+a[j]+a[k])%1024==0)
                                {
                                    int cnt=0;
                                    for(int m=0;m<5;m++)
                                    if(m!=i&&m!=j&&m!=k)
                                    cnt+=a[m];
                                 //cout<<i<<j<<k<<endl;
                                 ans=max(ans,(cnt-1)%1024+1);
                                }
                    }
            if(ans%1024==0&&ans!=0)printf("1024\n");
            else printf("%d\n",ans%1024);
        }
    }
    return 0;
}

posted @ 2014-08-18 21:47  JarvisLau  阅读(123)  评论(0编辑  收藏  举报