本人蒟蒻,WA却不知道问题出在哪里,样例也没过,求助大神
#include<iostream>
#include<cmath>
#include<string>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
using namespace std;
int s[21][21];
bool flag(int x, int y, int a, int b) {
if (x == a + 1 && y == b - 2) return true;
if (x == a + 2 && y == b - 1) return true;
if (x == a + 2 && y == b + 1) return true;
if (x == a + 1 && y == b + 2) return true;
if (x == a - 1 && y == b + 2) return true;
if (x == a - 2 && y == b + 1) return true;
if (x == a - 2 && y == b - 1) return true;
if (x == a - 1 && y == b - 2) return true;
return false;
}
int main() {
int n, m, a, b;
cin >> n >> m >> a >> b;
for (int i = 1; i <= n; i++) {
s[1][i] = 1;
if (flag(1, i, a, b)) s[1][i] = 0;
}
for (int i = 1; i <= m; i++) {
s[i][1] = 1;
if (flag(i, 1, a, b)) s[i][1] = 0;
}
for (int i = 2; i <= n; i++) {
for (int j = 2; j <= m; j++) {
if (flag(i, j, a, b)) {
s[i][j] = 0;
continue;
}
s[i][j] = s[i - 1][j] + s[i][j - 1];
}
}
/*for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout << s[i][j] << ' ';
}
cout << endl;
}*/
cout << s[n][m];
return 0;
}