Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package f02_Matrices.Exercises;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.List;
- public class P07_Crossfire_List {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- String[] rowsCols = reader.readLine().split(" ");
- int rows = Integer.parseInt(rowsCols[0]);
- int cols = Integer.parseInt(rowsCols[1]);
- List<List<Integer>> matrix = new ArrayList<>(rows);
- int n = 1;
- for (int i = 0; i < rows; i++) {
- matrix.add(i, new ArrayList<>());
- for (int j = 0; j < cols; j++) {
- matrix.get(i).add(j, n++);
- }
- }
- while (true) {
- String line = reader.readLine();
- if (line.equalsIgnoreCase("Nuke it from orbit")) {
- break;
- }
- String[] tokens = line.split("\\s+");
- int row = Integer.parseInt(tokens[0]);
- int col = Integer.parseInt(tokens[1]);
- int radius = Integer.parseInt(tokens[2]);
- for (int i = row - radius; i <= row + radius; i++) {
- if (indexIsInRange(matrix, i, col) && i != row) {
- matrix.get(i).remove(col);
- }
- }
- for (int i = col + radius; i >= col - radius; i--) {
- if (indexIsInRange(matrix, row, i)) {
- matrix.get(row).remove(i);
- }
- }
- matrix.removeIf(List::isEmpty);
- }
- for (List<Integer> integers : matrix) {
- System.out.println(integers.toString().replaceAll("[\\[\\]]", "")
- .replaceAll(",", ""));
- }
- }
- private static boolean indexIsInRange(List<List<Integer>> matrix, int row, int col) {
- return row >= 0 && row < matrix.size()
- && col < matrix.get(row).size() && col >= 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement