fork download
  1. import java.util.Arrays;
  2.  
  3. public class ChessMetric {
  4. static long[][][] mem;
  5. static int num, s, e [];
  6.  
  7. public static long howMany(int size, int[] start, int[] end, int numMoves)
  8. {
  9. mem = new long[size + 1][size + 1][numMoves+1];
  10. for(long [][] i:mem)
  11. for(long[]j:i)
  12. Arrays.fill(j, -1);
  13. e = end;
  14. s = size;
  15. num = numMoves;
  16. return dp(start[0], start[1], num);
  17. }
  18. static int [] dx = {0,1,0,-1,1,1,-1,-1, 2,-2,2,-2, 1,-1,1,-1};
  19. static int [] dy = {1,0,-1,0,1,-1,1,-1, 1,1,-1,-1, 2,2,-2,-2};
  20. static long dp(int i, int j, int n)
  21. {
  22. if (n == 0)
  23. return i == e[0] && j == e[1]?1:0;
  24. if(mem[i][j][n] != -1)
  25. return mem[i][j][n];
  26. long ans = 0;
  27. for (int k = 0; k < dx.length; k++)
  28. {
  29. int nx = i + dx[k], ny = j + dy[k];
  30. if(nx >= 0 && ny >= 0 && nx < s && ny < s)
  31. ans += dp(nx, ny, n-1);
  32. }
  33. return mem[i][j][n] = ans;
  34. }
  35. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:3: error: class ChessMetric is public, should be declared in a file named ChessMetric.java
public class ChessMetric {
       ^
1 error
stdout
Standard output is empty