39 lines
763 B
C++
39 lines
763 B
C++
#include <bits/stdc++.h>
|
|
const int N = 20 + 10;
|
|
using namespace std;
|
|
|
|
int n, m, x, y;
|
|
|
|
long long f[N][N];
|
|
bool g[N][N];
|
|
int c[9] = {0, 1, 1, -1, -1, 2, 2, -2, -2},
|
|
d[9] = {0, -2, 2, -2, 2, 1, -1, -1, 1};
|
|
|
|
int main()
|
|
{
|
|
cin >> n >> m >> x >> y;
|
|
memset(g, 1, sizeof(g));
|
|
g[x][y] = 0;
|
|
for (int i = 1; i <= 8; ++ i)
|
|
{
|
|
if (x + c[i] < 0 || y + d[i] < 0) continue;
|
|
g[x + c[i]][y + d[i]] = false;
|
|
}
|
|
f[0][0] = 1;
|
|
for (int i = 1; i <= m; ++ i)
|
|
{
|
|
if (g[0][i] == 0) break;
|
|
else f[0][i] = f[0][i - 1];
|
|
}
|
|
for (int i = 1; i <= n; ++ i)
|
|
{
|
|
if (g[i][0] == 0) break;
|
|
else f[i][0] = f[i - 1][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;
|
|
}
|