求大佬调orz
int Bx,By,Hx,Hy;
long long dp[25][25];
int dx[9]={0,+1,+2,+2,+1,-1,-2,-2,-1};
int dy[9]={0,+2,+1,-1,-2,-2,-1,+1,+2};
bool m[25][25];
int main(){
memset(m,true,sizeof(m));
memset(dp,0,sizeof(dp));
cin>>Bx>>By>>Hx>>Hy;
Bx++,By++,Hx++,Hy++;
int Mx=max(Bx,Hx)+2,My=max(By,Hy)+2;
for(int i=0;i<9;i++){
m[Hx+dx[i]][Hy+dy[i]]=false;
}
for(int i=1;i<=Bx;i++){
if(m[i][1]){
dp[i][1]=1;
}
}
for(int j=1;j<=By;j++){
if(m[1][j]){
dp[1][j]=1;
}
}
for(int i=2;i<=Bx;i++){
for(int j=2;j<=By;j++){
if(!m[i][j]){
continue;
}
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
cout<<dp[Bx][By]<<"\n";
return 0;
}