求大神帮助!
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
long long dp[30][30]={0};
long long ma[10][2];
long long w[5][2]={{1,2},{-1,2},{-1,-2},{1,-2}};
int main(){
long long n,m,a,b;
cin >>n >> m >> a >> b;
for(int i=0;i<4;i++){
ma[2*i][0] = a+w[i][0];
ma[2*i][1] = b+w[i][1];
ma[2*i+1][0]= a+w[i][1];
ma[2*i+1][1]= b+w[i][0];
}
for(int i=0;i<=n;i++){
for(int j=0;j<=m;j++){
dp[i][j] = dp[i-1][j]+dp[i][j-1];
for(int k=0;k<8;k++){
if(i == ma[k][0] && j==ma[k][1])
dp[i][j] = 0;
}
if(i == a && j == b)
dp[i][j]=0;
if(i ==0 && j ==0)
dp[i][j] =1;
}
}
cout << dp[n][m] << endl;
return 0;
}