不开longlong见祖宗
#include <iostream>
#define int long long
using namespace std;
const int N = 30;
int f[N][N];
signed main()
{
int n, m, a, b;
cin >> n >> m >> a >> b;
n ++, m ++, a ++, b ++;
int dx[9] = {0, -1, -2, -2, -1, 1, 2, 2, 1}, dy[9] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
f[0][1] = 1;
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
{
bool flag = true;
for(int k = 0; k < 9; k ++)
{
int x = a + dx[k], y = b + dy[k];
if(i == x && j == y)
{
f[i][j] = 0;
flag = false;
break;
}
}
if(flag) f[i][j] = f[i - 1][j] + f[i][j - 1];
}
cout << f[n][m] << endl;
return 0;
}