第三个和第四个测试点wa掉了,输出比正确答案大一些
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 25;
int n, m;
int x, y;
long long f[N][N];
int dx[9] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
int dy[9] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
int g[N][N];
int main()
{
cin >> n >> m >> x >> y;
for(int i = 0; i <= n; i ++) f[i][0] = 1;
for(int i = 0; i <= m; i ++) f[0][i] = 1;
for(int i = 0; i < 9; i ++)
{
int a = x + dx[i], b = y + dy[i];
if(a < 0 || a > n || b < 0 || b > m) continue;
g[a][b] = 1, f[a][b] = 0;
}
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
if(!g[i][j]) f[i][j] = f[i - 1][j] + f[i][j - 1];
cout << f[n][m] << endl;
return 0;
}