马走日
#include<bits/stdc++.h>
using namespace std;
int xx[8]={1,2,-1,-2,1,2,-1,-2};
int yy[8]={2,1,2,1,-2,-1,-2,-1};
bool b[10][10];
int num,m,n;
int search(int i,int j,int t)
{
int x,y;
for(int k=0;k<=7;k++)
{
x=i+xx[k];
y=j+yy[k];
if(x>=0&&x<n&&y>=0&&y<m&&(!b[x][y]))
{
b[x][y]=1;
if(t==m*n)num++;
else search(x,y,t+1);
b[x][y]=0;
}
}
}
int main()
{
int x,y,q;
scanf("%d",&q);
for(int i=1;i<=q;i++)
{
scanf("%d%d%d%d",&n,&m,&x,&y);
memset(b,0,sizeof(b));
b[x][y]=1;
search(x,y,2);
cout<<num<<endl;
num=0;
}
}