SHARE
TWEET

Untitled

a guest May 27th, 2019 83 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package 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.Arrays;
  8. import java.util.List;
  9.  
  10. public class P07_Crossfire {
  11.     public static void main(String[] args) throws IOException {
  12.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  13.  
  14.         int[] size = Arrays
  15.                 .stream(reader.readLine().split(" "))
  16.                 .mapToInt(Integer::parseInt)
  17.                 .toArray();
  18.         int rows = size[0];
  19.         int columns = size[1];
  20.         int count = 0;
  21.         List<List<Integer>> matrix = new ArrayList<>();
  22.         for (int i = 0; i < rows; i++) {
  23.             matrix.add(new ArrayList<>());
  24.             for (int j = 0; j < columns; j++) {
  25.                 count++;
  26.                 matrix.get(i).add(count);
  27.             }
  28.         }
  29.         String command = reader.readLine();
  30.         while (!command.equalsIgnoreCase("nuke it from orbit")) {
  31.             int[] fire = Arrays
  32.                     .stream(command.split(" "))
  33.                     .mapToInt(Integer::parseInt)
  34.                     .toArray();
  35.             int row = fire[0];
  36.             int col = fire[1];
  37.             int radius = fire[2];
  38.             if ((row >= 0 && row < matrix.size()) &&
  39.                     (col >= 0 && col < matrix.get(row).size())) {
  40.                 int upIndex = row - radius;
  41.                 int downIndex = row + radius;
  42.                 if (upIndex < 0) {
  43.                     upIndex = 0;
  44.                 }
  45.                 if (downIndex > matrix.size() - 1) {
  46.                     downIndex = matrix.size() - 1;
  47.                 }
  48.                 for (int i = row + 1; i <= downIndex; i++) {
  49.                     if (col <= matrix.get(i).size() - 1) {
  50.                         matrix.get(i).remove(col);
  51.                     }
  52.                 }
  53.                 for (int i = row - 1; i >= upIndex; i--) {
  54.                     if (col <= matrix.get(i).size() - 1) {
  55.                         matrix.get(i).remove(col);
  56.                     }
  57.                 }
  58.                 int firstIndex = col - radius;
  59.                 int lastIndex = col + radius;
  60.                 if (firstIndex < 0) {
  61.                     firstIndex = 0;
  62.                 }
  63.                 if (lastIndex > matrix.get(row).size() - 1) {
  64.                     lastIndex = matrix.get(row).size() - 1;
  65.                 }
  66.                 if (lastIndex >= firstIndex) {
  67.                     matrix.get(row).subList(firstIndex, lastIndex + 1).clear();
  68.                 }
  69.                 matrix.removeIf(List::isEmpty);
  70.             }
  71.             command = reader.readLine();
  72.         }
  73.         for (List<Integer> integers : matrix) {
  74.             for (int j = 0; j < integers.size(); j++) {
  75.                 if (j == integers.size() - 1) {
  76.                     System.out.print(integers.get(j));
  77.                 } else {
  78.                     System.out.print(integers.get(j) + " ");
  79.                 }
  80.             }
  81.             System.out.println();
  82.         }
  83.     }
  84. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top