话说这不算抄题解吧
#include<iostream>
#include<algorithm>
using namespace std;
int x,y,m,n;
int dirx[9]={0,-2,-1,1,2,-2,-1,1,2},diry[9]={0,-1,-2,-2,-1,1,2,2,1};
bool vis[21][21];
unsigned long long f[101][101];
int main(){
cin>>x>>y>>m>>n;
x+=2;
y+=2;
m+=2;
n+=2;
vis[m][n]=1;
f[2][2]=1;
for(int i=1;i<=8;i++) vis[m+dirx[i][n+diry[i]]=1;
for(int i=2;i<=x;i++){
for(int j=2;j<=y;j++){
if(vis[i][j]) continue;
f[i][j]=max(f[i-1][j]+f[i][j-1],f[i][j]);
}
}
cout<<f[x][y];
return 0;
}