Advertisement
emodev

Untitled

Jan 28th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.06 KB | None | 0 0
  1. package f02_Matrices.Exercises;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. public class P07_Crossfire_List {
  10.  
  11.     public static void main(String[] args) throws IOException {
  12.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  13.  
  14.         String[] rowsCols = reader.readLine().split(" ");
  15.         int rows = Integer.parseInt(rowsCols[0]);
  16.         int cols = Integer.parseInt(rowsCols[1]);
  17.  
  18.         List<List<Integer>> matrix = new ArrayList<>(rows);
  19.  
  20.         int n = 1;
  21.         for (int i = 0; i < rows; i++) {
  22.             matrix.add(i, new ArrayList<>());
  23.             for (int j = 0; j < cols; j++) {
  24.                 matrix.get(i).add(j, n++);
  25.             }
  26.         }
  27.  
  28.         while (true) {
  29.             String line = reader.readLine();
  30.             if (line.equalsIgnoreCase("Nuke it from orbit")) {
  31.                 break;
  32.             }
  33.             String[] tokens = line.split("\\s+");
  34.  
  35.             int row = Integer.parseInt(tokens[0]);
  36.             int col = Integer.parseInt(tokens[1]);
  37.             int radius = Integer.parseInt(tokens[2]);
  38.  
  39.             for (int i = row - radius; i <= row + radius; i++) {
  40.                 if (indexIsInRange(matrix, i, col) && i != row) {
  41.                     matrix.get(i).remove(col);
  42.                 }
  43.             }
  44.  
  45.             for (int i = col + radius; i >= col - radius; i--) {
  46.                 if (indexIsInRange(matrix, row, i)) {
  47.                     matrix.get(row).remove(i);
  48.                 }
  49.             }
  50.  
  51.             matrix.removeIf(List::isEmpty);
  52.  
  53.         }
  54.  
  55.         for (List<Integer> integers : matrix) {
  56.             System.out.println(integers.toString().replaceAll("[\\[\\]]", "")
  57.                     .replaceAll(",", ""));
  58.         }
  59.  
  60.  
  61.     }
  62.  
  63.     private static boolean indexIsInRange(List<List<Integer>> matrix, int row, int col) {
  64.         return row >= 0 && row < matrix.size()
  65.                 && col < matrix.get(row).size() && col >= 0;
  66.     }
  67.  
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement