Advertisement
Guest User

MovingTarget_03

a guest
Jul 2nd, 2020
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.42 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.List;
  3. import java.util.Scanner;
  4. import java.util.stream.Collectors;
  5.  
  6. public class MovingTarget_03 {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         String[] parts = scanner.nextLine().split("\\s+");
  11.        
  12.         List<Integer> numbers = Arrays.stream(parts)
  13.                 .map(Integer::parseInt)
  14.                 .collect(Collectors.toList());
  15.  
  16.         String input = scanner.nextLine();
  17.         while (!"End".equals(input)) {
  18.  
  19.             String[] tokens = input.split("\\s+");
  20.             String command = tokens[0];
  21.             int index = Integer.parseInt(tokens[1]);
  22.             int element = Integer.parseInt(tokens[2]);
  23.  
  24.             switch (command) {
  25.                 case "Shoot":
  26.                     if (isValid(numbers, index)) {
  27.                         if (numbers.get(index) > element) {
  28.                             int sum = numbers.get(index) - element;
  29.                             numbers.remove(index);
  30.                             numbers.add(sum);
  31.                         } else {
  32.                             numbers.remove(index);
  33.                         }
  34.                     }
  35.                     break;
  36.                 case "Add":
  37.                     if (isValid(numbers, index)) {
  38.                         numbers.add(index, element);
  39.                     } else {
  40.                         System.out.println("Invalid placement!");
  41.                     }
  42.                     break;
  43.                 case "Strike":
  44.                     int leftRadius = Math.max(index - element, 0);
  45.                     int rightRadius = Math.min(index + leftRadius, numbers.size() - 1);
  46.                     if (leftRadius >= 0 && rightRadius < numbers.size() - element) {
  47.                         for (int i = rightRadius; i >= leftRadius; i--) {
  48.                             numbers.remove(i);
  49.                         }
  50.                     } else {
  51.                         System.out.println("Strike missed!");
  52.                     }
  53.                     break;
  54.             }
  55.  
  56.             input = scanner.nextLine();
  57.         }
  58.         System.out.println(numbers.toString().replaceAll("[\\[\\],]", "")
  59.                 .replaceAll(" ", "|"));
  60.     }
  61.  
  62.     private static boolean isValid(List<Integer> numbers, int index) {
  63.         boolean result = index >= 0 && index < numbers.size();
  64.         return result;
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement