一直是第一个和最后一个测试点不过
#include<iostream>
#include<cmath>
#include<string>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
using namespace std;
long long n, m, a, b, f[21][21];
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 c[21][21];
int main() {
cin >> m >> n >> a >> b;
for (int i = 0; i <= 8; i++) {
if (a + dx[i]<0 || a + dx[i]>n || b + dy[i]<0 || b + dy[i]>n) continue;
else c[a + dx[i]][b + dy[i]] = 1;
}
if (c[0][0]) f[0][0] = 0;
else f[0][0] = 1;
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= m; j++) {
if (c[i][j]) continue;
if (j != 0) f[i][j] += f[i][j - 1];
if (i != 0) f[i][j] += f[i - 1][j];
}
}
cout << f[n][m];
return 0;
}