Advertisement
Ligh7_of_H3av3n

07. Crossfire

May 17th, 2024
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.03 KB | None | 0 0
  1. package Uprajnenie;
  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.Arrays;
  8. import java.util.List;
  9.  
  10. public class Crossfire {
  11.     public static void main(String[] args) throws IOException {
  12.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  13.  
  14.         int[] dimensions = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
  15.  
  16.         int rows = dimensions[0];
  17.         int cols = dimensions[1];
  18.  
  19.         List<List<Integer>> matrix = new ArrayList<>();
  20.  
  21.         int count = 1;
  22.  
  23.         for (int row = 0; row < rows; row++) {
  24.             matrix.add(new ArrayList<>());
  25.             for (int col = 0; col < cols; col++) {
  26.                 matrix.get(row).add(count++);
  27.             }
  28.         }
  29.  
  30.         String line = reader.readLine();
  31.  
  32.         while (!line.equals("Nuke it from orbit")){
  33.             String[] data = line.split(" ");
  34.  
  35.             int row = Integer.parseInt(data[0]);
  36.             int col = Integer.parseInt(data[1]);
  37.             int radius = Integer.parseInt(data[2]);
  38.  
  39.             for (int i = row - radius; i <= row + radius; i++) {
  40.                 if (isInRange(i, col, matrix) && i != row){
  41.                     matrix.get(i).remove(col);
  42.                 }
  43.             }
  44.  
  45.             for (int i = col + radius; i >= col - radius; i--) {
  46.                 if (isInRange(row, i, matrix)){
  47.                     matrix.get(row).remove(i);
  48.                 }
  49.             }
  50.  
  51.             matrix.removeIf(List::isEmpty);
  52.             line = reader.readLine();
  53.         }
  54.  
  55.         for(List<Integer> integers : matrix){
  56.             for (Integer integer : integers) {
  57.                 System.out.print(integer + " ");
  58.             }
  59.             System.out.println();
  60.         }
  61.     }
  62.  
  63.     private static boolean isInRange(int row, int col, List<List<Integer>> matrix) {
  64.         return row >= 0 && row < matrix.size() && col >= 0 && col < matrix.get(row).size();
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement