初学JAVA的萌新,这段代码在idea上是没错的,但洛谷上就RE,问问大佬这是为什么???
package problem;
import java.util.Scanner;
public class Main {
static boolean[][] Map = new boolean[25][25];
static long[][] f = new long[25][25];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int Xb = sc.nextInt() + 1, Yb = sc.nextInt() + 1, Xh = sc.nextInt() + 1, Yh = sc.nextInt() + 1;
f[1][1] = 1;
int[] Xm = new int[]{0, 1, 2, 2, 1, -1, -2, -2, -1};
int[] Ym = new int[]{0, 2, 1, -1, -2, -2, -1, 1, 2};
for (int i = 0; i < 9; i++) {
int xx = Xh + Xm[i], yy = Yh + Ym[i];
if (xx < 0 || yy < 0 || xx > Xb || yy > Xb) continue;
Map[xx][yy] = true;
}
for (int i = 1; i <= Xb; i++) {
for (int j = 1; j <= Yb; j++) {
if (i == 1 && j == 1 || Map[i][j]) continue;
f[i][j] = Math.max(f[i][j], (f[i - 1][j] + f[i][j - 1]));
}
}
System.out.println(f[Xb][Yb]);
}
}