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();
}