#include <bits/stdc++.h>
using namespace std;
const int dir[8][2]={{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1},{-2,1},{-1,2}};
int a[10][10],n,m,tot;
void dfs(int x,int y,int k)
{
if(k==n*m)
{
tot++;
return;
}
for(int i=0;i<8;i++)
{
int xx=x+dir[i][0],yy=y+dir[i][1];
if(xx>=0&&yy>=0&&xx<n&&yy<m&&!a[xx][yy])
{
a[xx][yy]=1;
dfs(xx,yy,k+1);
a[xx][yy]=0;
}
}
return;
}
int main()
{
int t;scanf("%d",&t);
while(t--)
{
int x,y;scanf("%d %d %d %d",&n,&m,&x,&y);
a[x][y]=1;
dfs(x,y,1);
printf("%d\n",&tot);
memset(a,0,sizeof(a));
tot=0;
}
return 0;
}
求助