各位大佬,下面的代码输入20 20 4 0时,出现WA问题,请问为什么?
import java.util.Scanner;
public class zuGuoHe {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int bx = sc.nextInt();//棋盘大小
int by = sc.nextInt();
int m = sc.nextInt();//马的坐标位置
int n = sc.nextInt();
boolean[][] valid = new boolean[bx + 1][by + 1];
int[][] dp = new int[bx + 1][by + 1];
dp[0][0] = 1;
int[][] directions = {
{m, n}, {m - 2, n - 1}, {m - 2, n + 1}, {m - 1, n - 2}, {m - 1, n + 2},
{m + 1, n - 2}, {m + 1, n + 2}, {m + 2, n - 1}, {m + 2, n + 1}
};
for (int[] dir : directions) {
int x = dir[0];
int y = dir[1];
if (x >= 0 && x <= bx && y >= 0 && y <= by) {
valid[x][y] = true;
}
}
for (int i = 0; i <= bx; i++) {
for (int j = 0; j <= by; j++) {
if (valid[i][j]) {
dp[i][j] = 0;
} else {
if (i > 0) {
dp[i][j] += dp[i - 1][j];
}
if (j > 0) {
dp[i][j] += dp[i][j - 1];
}
}
}
}
System.out.println(dp[bx][by]);
}
}