大家有空可以帮我检查一下代码哈,找出错误之处,1和4两个测试点一直RE
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const long long MAXN = 500;
ll n, m, a, b;
ll f[MAXN][MAXN];
bool cmp[MAXN][MAXN];
signed main(){
cin >> n >> m >> a >> b;
cmp[a][b] = 1;
for(ll i = a - 2; i <= a + 2; i++){
for(ll j = b - 2; j <= b + 2; j++){
if((abs(a - i) + abs(b - j) == 3) && (max(abs(a - i), abs(b - j)) == 2)){
cmp[i][j] = 1;
}
}
}
f[0][0] = 1;
for(ll i = 1; i <= n; i++){
if(cmp[i][0] == 1) f[i][0] = 0;
else f[i][0] = f[i-1][0];
}
for(ll i = 1; i <= m; i++){
if(cmp[0][i] == 1) f[0][i] = 0;
else f[0][i] = f[0][i-1];
}
for(ll i = 1; i <= n; i++){
for(ll j = 1; j <= m; j++){
if(cmp[i][j] == 1) f[i][j] = 0;
else f[i][j] = f[i-1][j] + f[i][j-1];
}
}
// for(ll i = 0; i <= n; i++){ 调试代码
// for(ll j = 0; j <= m; j++){
// cout << f[i][j] << " ";
// }
// cout << endl;
// }
cout << f[n][m] << '\n';
return 0;
}