代码如下
#include<bits/stdc++.h>
using namespace std;
int ma,mb,n,m,ans=0;
int dis[8][2]={{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};
int dx[2]={0,1},dy[2]={1,0};
bool vis[25][25];
int mp[25][25];
void dfs(int x,int y){
if(x==n&&y==m){
ans++;
return;
}
for(int i=0; i<2; i++){
int nx=x+dx[i];
int ny=x+dy[i];
if(nx>=0&&ny>=0&&nx<=n&&ny<=m&&!vis[nx][ny])dfs(nx,ny);
}
}
int main(){
cin>>n>>m>>ma>>mb;
vis[ma][mb]=true;
for(int i=0; i<8; i++){
int nx=ma+dis[i][0],
ny=mb+dis[i][1];
if(nx>=0&&ny>=0)vis[nx][ny]=true;
}
dfs(0,0);
cout<<ans;
return 0;
}