Advertisement
Guest User

Untitled

a guest
May 27th, 2019
478
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement