Didart

Crossfire

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