Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class MovingTarget {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- List<Integer> sequenceOfTargets = Arrays
- .stream(scanner.nextLine().split("\\s+"))
- .map(Integer::parseInt)
- .collect(Collectors.toList());
- String input = scanner.nextLine();
- while (!input.equals("End")) {
- String[] element = input.split("\\s+");
- String command = element[0];
- switch (command) {
- case "Shoot":
- int indexShoot = Integer.parseInt(element[1]);
- int power = Integer.parseInt(element[2]);
- if (indexShoot >= 0 && indexShoot < sequenceOfTargets.size()) {
- sequenceOfTargets.set(indexShoot, sequenceOfTargets.get(indexShoot) - power);
- if (sequenceOfTargets.get(indexShoot) <= 0) {
- sequenceOfTargets.remove(indexShoot);
- }
- }
- break;
- case "Add":
- int indexToAdd = Integer.parseInt(element[1]);
- int value = Integer.parseInt(element[2]);
- if (indexToAdd >= 0 && indexToAdd < sequenceOfTargets.size()) {
- sequenceOfTargets.add(indexToAdd, value);
- } else {
- System.out.println("Invalid placement!");
- }
- break;
- case "Strike":
- int strikeIndex = Integer.parseInt(element[1]);
- int radius = Integer.parseInt(element[2]);
- int start = strikeIndex - radius;
- int end = strikeIndex + radius;
- if (start >= 0 && end < sequenceOfTargets.size()) {
- sequenceOfTargets.subList(start, end + 1).clear();
- } else {
- System.out.println("Strike missed!");
- }
- break;
- }
- input = scanner.nextLine();
- }
- System.out.print(Arrays.toString(new List[]{sequenceOfTargets})
- .replaceAll("[\\[\\]]", "")
- .replaceAll(", ", "|"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment