好久没做题了,结果给我来个开门红
测试点下过来验证了一下是对的,但评测说我是错的
#include<bits/stdc++.h>
using namespace std;
int f[21][21];
int x, y, n, m;
int pd (int a, int b)
{
if (a - 2 == x && b - 1 == y || a + 2 == x && b - 1 == y ||a - 2 == x && b + 1 == y ||a + 2 == x && b + 1 == y ||a - 1 == x && b - 2 == y ||a + 1 == x && b - 2 == y ||a - 1 == x && b + 2 == y ||a + 1 == x && b + 2 == y ) return 1;
return 0;
}
int main()
{
scanf("%d%d%d%d", &n, &m, &x, &y);
f[0][0] = 1;
for (int i = 0; i <= n; i++)
for (int j = 0; j <= m; j++)
{
if (i == x && j == y || pd(i, j) == 1 || i == 0 && j == 0) continue;
f[i][j] = f[i - 1][j] + f[i][j - 1];
}
printf("%d", f[n][m]);
}