RGAlex

O3. Moving Target / O3. Mid Exam Retake

Feb 23rd, 2021
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.19 KB | None | 0 0
  1. package MidExam.O3;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import java.util.Scanner;
  7. import java.util.stream.Collectors;
  8.  
  9. public class O3MovingTarget {
  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.         List<Integer> test = Arrays.stream(scanner.nextLine().split("\\s+")).
  13.                 map(Integer::parseInt).collect(Collectors.toList());
  14.         String command = scanner.nextLine();
  15.  
  16.         while (!command.equals("End")) {
  17.             String type = command.split("\\s+")[0];
  18.             int index = Integer.parseInt(command.split("\\s+")[1]);
  19.             int number = Integer.parseInt(command.split("\\s+")[2]);
  20.             switch (type) {
  21.                 case "Shoot":
  22.                     if (index >= 0 && index < test.size()) {
  23.                         test.set(index, test.get(index) - number);
  24.                         if (test.get(index) <= 0) {
  25.                             test.remove(index);
  26.                         }
  27.                     }
  28.                     break;
  29.                 case "Strike":
  30.                     if (index + number < test.size() && index - number >= 0) {
  31.                         int to = Math.max(0, index - number);
  32.                         int from = Math.min(test.size() - 1, index + number);
  33.                         if (from >= to) {
  34.                             test.subList(to, from + 1).clear();
  35.                         }
  36.                     } else {
  37.                         System.out.println("Strike missed!");
  38.                     }
  39.                     break;
  40.                 case "Add":
  41.                     if (index >= 0 && index < test.size()) {
  42.                         test.add(index, number);
  43.                     } else {
  44.                         System.out.println("Invalid placement!");
  45.                     }
  46.                     break;
  47.             }
  48.             command = scanner.nextLine();
  49.         }
  50.          List<String> print= new ArrayList<>();
  51.          for (Integer integer : test) {
  52.           String current = String.valueOf(integer);
  53.           print.add(current);
  54.          }
  55.         System.out.println(String.join("|", print));
  56.     }
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment