MBEEWALK - Bee Walk

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>

bool test(int n,int m)
{
     if(n>=2&&n<=30&&m>=1&&m<=15)
         return true;
     else return false;
}
main()
{
      int f[32][16][15];
      for(int i=2;i<=30;i++)
         for(int j=1;j<=15;j++)
            f[i][j][0]=0;
      f[16][8][0]=1;
      for(int k=1;k<=14;k++)
      {
          for(int i=2;i<=30;i++)
             for(int j=1;j<=15;j++)
             {
                 if((i-j)%2==0)
                 {
                 f[i][j][k]=0;
                 if(test(i+1,j+1)) f[i][j][k]+=f[i+1][j+1][k-1];
                 if(test(i+1,j-1)) f[i][j][k]+=f[i+1][j-1][k-1];
                 if(test(i-1,j+1)) f[i][j][k]+=f[i-1][j+1][k-1];
                 if(test(i-1,j-1)) f[i][j][k]+=f[i-1][j-1][k-1];
                 if(test(i+2,j))   f[i][j][k]+=f[i+2][j][k-1];
                 if(test(i-2,j+1)) f[i][j][k]+=f[i-2][j][k-1];
                 }
             }
      }
      int n,m;
      scanf("%d",&n);
      for(int i=1;i<=n;i++)
      {
              scanf("%d",&m);
              printf("%d\n",f[16][8][m]);
      }
      //for(int i=1;i<=14;i++)
      //printf(" %d",f[16][8][i]);
      //getch();
}
                     
                     
                             

Download