20分求救救命
#include<bits/stdc++.h>
#include<cstring>
#include<iostream>
using namespace std;
const int N=25;
long long f[N][N];
int dx[9]={0,-2,-1,1,2,2,1,-1,-2};
int dy[9]={0,1,2,2,1,-1,-2,-2,-1};
int main(){
int n,m,x,y;
cin>>n>>m>>x>>y;
memset(f,-1,sizeof(f));
for(int i=0;i<9;i++){
int a=x+dx[i],b=y+dy[i];
if(a<0||a>n||b<0||b>m){
continue;
}
f[a][b]=0;
}
for(int i=0;i<=n;i++){
f[i][0]=1;
}
for(int i=0;i<=n;i++){
f[0][i]=1;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(f[i][j]==-1){
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
}
cout<<f[n][m];
return 0;
}