Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Exercises;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- public class P07_Crossfire {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- int[] size = Arrays
- .stream(reader.readLine().split(" "))
- .mapToInt(Integer::parseInt)
- .toArray();
- int rows = size[0];
- int columns = size[1];
- int count = 0;
- List<List<Integer>> matrix = new ArrayList<>();
- for (int i = 0; i < rows; i++) {
- matrix.add(new ArrayList<>());
- for (int j = 0; j < columns; j++) {
- count++;
- matrix.get(i).add(count);
- }
- }
- String command = reader.readLine();
- while (!command.equalsIgnoreCase("nuke it from orbit")) {
- int[] fire = Arrays
- .stream(command.split(" "))
- .mapToInt(Integer::parseInt)
- .toArray();
- int row = fire[0];
- int col = fire[1];
- int radius = fire[2];
- if ((row >= 0 && row < matrix.size()) &&
- (col >= 0 && col < matrix.get(row).size())) {
- int upIndex = row - radius;
- int downIndex = row + radius;
- if (upIndex < 0) {
- upIndex = 0;
- }
- if (downIndex > matrix.size() - 1) {
- downIndex = matrix.size() - 1;
- }
- for (int i = row + 1; i <= downIndex; i++) {
- if (col <= matrix.get(i).size() - 1) {
- matrix.get(i).remove(col);
- }
- }
- for (int i = row - 1; i >= upIndex; i--) {
- if (col <= matrix.get(i).size() - 1) {
- matrix.get(i).remove(col);
- }
- }
- int firstIndex = col - radius;
- int lastIndex = col + radius;
- if (firstIndex < 0) {
- firstIndex = 0;
- }
- if (lastIndex > matrix.get(row).size() - 1) {
- lastIndex = matrix.get(row).size() - 1;
- }
- if (lastIndex >= firstIndex) {
- matrix.get(row).subList(firstIndex, lastIndex + 1).clear();
- }
- matrix.removeIf(List::isEmpty);
- }
- command = reader.readLine();
- }
- for (List<Integer> integers : matrix) {
- for (int j = 0; j < integers.size(); j++) {
- if (j == integers.size() - 1) {
- System.out.print(integers.get(j));
- } else {
- System.out.print(integers.get(j) + " ");
- }
- }
- System.out.println();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement