https://www.nowcoder.com/practice/cc1a9bc523a24716a117b438a1dc5706?tpId=230&tqId=40428&ru=/exam/oj
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m, x, y;
cin >> n >> m >> x >> y;
vector<vector<long long>> dp(n+2, vector<long long>(m+2, 0));
++x, ++y;
dp[0][1] = 1;
for (int i = 1; i <= n+1; ++i) {
for (int j = 1; j <= m+1; ++j) {
if ( i != x && j != y && abs(x-i)+abs(y-j)==3 || (i == x && j == y)) {
dp[i][j] = 0;
} else {
dp[i][j] = dp[i-1][j] + dp[i][j-1];
}
}
}
cout << dp[n+1][m+1] << endl;
return 0;
}
// 64 位输出请用 printf("%lld")