60pts,求调
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 30;
int f[N][N], vis[N][N], bx, by, hx, hy;
int fx[] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
int fy[] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
signed main(){
cin >> bx >> by >> hx >> hy;
for(int i = 0; i < 9; i ++) if(hx + fx[i] >= 0 && hy + fy[i] >= 0) vis[hx + fx[i]][hy + fy[i]] = 1;
for(int i = 0; i <= bx; i ++) if(!vis[i][0]) f[i][0] = 1;
for(int i = 0; i <= by; i ++) if(!vis[0][i]) f[0][i] = 1;
for(int i = 1; i <= bx; i ++){
for(int j = 1; j <= by; j ++){
if(vis[i][j]) continue;
f[i][j] = f[i - 1][j] + f[i][j - 1];
}
}
cout << f[bx][by];
return 0;
}