学长说这是水题!可是俺连题目都没搞不懂!!!
#include<stdio.h>
#define max(a,b) a>b?a:bint main()
{
int n,num[10],i,j,q,flag,temp,ans,k;
while(scanf("%d",&n)!=EOF)
{
flag=0;
for(i=1;i<=n;i++)
scanf("%d",&num[i]);
if(n<=3)
printf("1024\n");
else if(n==4)
{
flag=0;
for(i=1;i<=n;i++)
{
temp=0;
for(j=1;j<=n;j++)
{
if(i==j)continue;
temp+=num[j];
}
if(temp%1024==0)flag=1;
if(flag)break;
}
if(flag){printf("1024\n");continue;}
else
{
ans=0;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
{
if(i==j)continue;
temp=num[i]+num[j];
while(temp>1024)
temp-=1024;
ans=max(ans,temp);
}
printf("%d\n",ans);
continue;
}
}
else
{
flag=0;
ans=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(q=1;q<=n;q++)
{
if(i!=j&&i!=q&&j!=q)
{
temp=num[i]+num[j]+num[q];
if(temp%1024==0)
{
temp=0;
for(k=1;k<=5;k++) if(k!=i && k!=q && k!=j) temp+=num[k];
while(temp>1024)temp-=1024;
ans=max(ans,temp);
flag=1;
}
}
}
if(flag==1)
printf("%d\n",ans);
else
printf("0\n");
}
}
return 0;
}
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4422