HI-Q

这是JOJ上的1605题  好象是 记不太清了

算法写的不是很精简  但用这种方法大概也就是这样

#include <stdio.h>
int main()
{
int q[34]={0};
int p[50]={0};
int n,m,u;
int i;
int ii=0;
int b;
int e;
int we;
int w=0;
int j=1;
n=0;m=0;u=0;
for(i=3;i<6;i++)
{
p[i]=j;
j++;
}
for(i=10;i<13;i++)
{
p[i]=j;
j++;
}
for(i=15;i<36;i++)
{
p[i]=j;
j++;
}
for(i=38;i<41;i++)
{
p[i]=j;
j++;
}
for(i=45;i<48;i++)
{
p[i]=j;
j++;
}
scanf("%d",&b);

for(we=0;we<b;we++)
{
for(i=0;i<34;i++)
{q[i]=0;}
scanf("%d",&e);
while(e)
{
q[e]=1;
scanf("%d",&e);
}
if(ii==0)
printf("HI Q OUTPUT/n");
ii=1;
while(1)
{
for(i=0;i<48;i++)
 {
   if(p[i]!=0&&q[p[i]]!=0)
    {

      if((i-7)>0&&q[p[i-7]]!=0&&(i-14)>0&&q[p[i-14]]==0)
        {
           if(u<=p[i-14]){m=p[i];n=p[i-7];u=p[i-14];}
        }

     if((i+7)<49&&q[p[i+7]]!=0&&(i+14)<49&&q[p[i+14]]==0)
        {
           if(u<=p[i+14]){m=p[i];n=p[i+7];u=p[i+14];}
        }

     if((i-1)%7!=0&&q[p[i-1]]!=0&&(i-2)%7!=0&&q[p[i-2]]==0)
        {
            if(u<=p[i-2]){m=p[i];n=p[i-1];u=p[i-2];}
        }

     if(i%7!=0&&q[p[i+1]]!=0&&(i+1)%7!=0&&q[p[i+2]]==0)
        {
            if(u<=p[i+2]){m=p[i];n=p[i+1];u=p[i+2];}
        }

    }

 }
  if(u==0)break;
  q[u]=1;
  q[m]=0;
  q[n]=0;
  u=0;n=0;m=0;
}
for(i=1;i<48;i++)
 {
   if(q[p[i]]==1)w=w+p[i];
 }
printf("%d/n",w);
w=0;
}
printf("END OF OUTPUT/n");
return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值