RT
#include<bits/stdc++.h>
using namespace std;
int sx,sy,ex,ey,n,m,X,Y,t[55][55],dy[]={1,0,-1,0},dx[]={0,1,0,-1};
int ddx[]={-2,-1,1,2,2,1,-1,-2},ddy[]={1,2,2,1,-1,-2,-2,-1},T[8][2];
long long s;
void dfs(int x,int y,int bs){
if(x==sx&&y==sy){
s++;
return;
}
for(int i=0;i<4;i++){
int tx=dx[i]+x,ty=dy[i]+y;
if(t[tx][ty]==0&&tx<=4&&tx>=0&&ty<=8&&ty>=0){
bool Q=1;
for(int i=0;i<8;i++){
if(tx==T[i][0]&&ty==T[i][1]){
Q=0;
break;
}
}
if(Q){
t[tx][ty]=1;
dfs(tx,ty,bs+1);
t[tx][ty]=0;
}
}
}
return;
}
int main(){
cin>>sx>>sy>>ex>>ey;
t[sx][sy]=1;
for(int i=0;i<8;i++){
int qtx=ddx[i]+ex,qty=ddy[i]+ey;
T[i][0]=qtx,T[i][1]=qty;
}
dfs(0,0,0);
cout<<s;
return 0;
}
样例输出0