用vs2022,所有样本点都符合预期啊,但是放到oj里就是全WA。
#include<cstdio>
using namespace std;
int main() {
int a[21][21];
long long b[21][21]{};
//cout << a[1][1]<<endl;
int x1, y1, x2, y2;
scanf_s("%d %d", &x1, &y1);
scanf_s("%d %d", &x2, &y2);
a[x2][y2] = 0;
if (x2 >= 2 && y2 >= 1)
a[x2 - 2][y2 - 1] = 0;
if (x2 >= 2 && y2 <= 19)
a[x2 - 2][y2 + 1] = 0;
if (x2 >= 1 && y2 <= 18)
a[x2 - 1][y2 + 2] = 0;
if (x2 <= 19 && y2 <= 18)
a[x2 + 1][y2 + 2] = 0;
if (x2 <= 18 && y2 <= 19)
a[x2 + 2][y2 + 1] = 0;
if (x2 <= 18 && y2 >= 1)
a[x2 + 2][y2 - 1] = 0;
if (x2 <= 19 && y2 >= 2)
a[x2 + 1][y2 - 2] = 0;
if (x2 >= 1 && y2 >= 2)
a[x2 - 1][y2 - 2] = 0;
for (int i = 0; i <= x1; i++)
for (int j = 0; j <= y1; j++) {
if (a[i][j] != 0) {
if (i == 0 && j == 0)
b[i][j] = 1;
else if (i == 0 && j != 0)
b[0][j] = b[0][j - 1];
else if (i != 0 && j == 0)
b[i][0] = b[i - 1][0];
else
b[i][j] = b[i - 1][j] + b[i][j - 1];
}
}
printf("%lld", b[x1][y1]);
return 0;
}