Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5.  
  6.  
  7. public class Main {
  8.  
  9. public static void main (String[] args) throws IOException {
  10.  
  11. BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
  12. String[] input = read.readLine().split(" ");
  13. int N = Integer.parseInt(input[0]);
  14. int M = Integer.parseInt(input[1]);
  15. int j = Integer.parseInt(input[2]);
  16.  
  17. String[] startPos = read.readLine().split(" ");
  18. int r = Integer.parseInt(startPos[0]);
  19. int c = Integer.parseInt(startPos[1]);
  20.  
  21. long [][] matrix = new long[N][M];
  22. int counter = 1;
  23. for (int i = 0; i < matrix.length; i++) {
  24. for (int k = 0; k < matrix[i].length; k++) {
  25. matrix[i][k] = counter;
  26. counter++;
  27. }
  28. }
  29.  
  30. boolean[][] visited = new boolean[N][M];
  31. visited[r][c] = true;
  32.  
  33. int[][] jumps = new int[j][2];
  34. for (int i = 0; i < j; i++) {
  35. String[] currInput = read.readLine().split(" ");
  36. jumps[i][0] = Integer.parseInt(currInput[0]);
  37. jumps[i][1] = Integer.parseInt(currInput[1]);
  38. }
  39.  
  40. int numberJumps = 0;
  41. long sum = matrix[r][c];
  42. boolean escaped = false;
  43. boolean caught = false;
  44. while (true) {
  45. for (int i = 0; i < j; i++) {
  46. int targetRow = jumps[i][0] + r;
  47. int targetCol = jumps[i][1] + c;
  48.  
  49. if (targetRow < 0 || targetRow > matrix.length - 1) {
  50. escaped = true;
  51. numberJumps++;
  52. break;
  53. } else if (targetCol < 0 || targetCol > matrix[0].length - 1) {
  54. escaped = true;
  55. numberJumps++;
  56. break;
  57. }
  58.  
  59. r = targetRow;
  60. c = targetCol;
  61. numberJumps++;
  62. sum += matrix[r][c];
  63.  
  64. if(visited[r][c]){
  65. caught = true;
  66. break;
  67. }else {
  68. visited[r][c] = true;
  69. }
  70. }
  71.  
  72.  
  73.  
  74. if(escaped){
  75. System.out.println("escaped "+sum);
  76. break;
  77. } else if(caught){
  78. System.out.println("caught "+ numberJumps);
  79. break;
  80. }
  81. }
  82. }
  83.  
  84. public static void print (int[][] matrix) {
  85. for (int[] Row : matrix) {
  86. for (int num : Row) {
  87. System.out.printf("%d ", num);
  88.  
  89. }
  90. System.out.println();
  91. }
  92.  
  93. }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement