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 SantasGifts {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int n = Integer.parseInt(scanner.nextLine());
- List<Integer> houseNumbers = Arrays.stream(scanner.nextLine()
- .split("\\s+"))
- .map(Integer::parseInt)
- .collect(Collectors.toList());
- int currentNum = 0;
- for (int i = 0; i < n; i++) {
- String input = scanner.nextLine();
- String[] command = input.split("\\s+");
- switch (command[0]) {
- case "Forward":
- int stepsForward = Integer.parseInt(command[1]);
- if (currentNum + stepsForward < houseNumbers.size()) {
- houseNumbers.remove(currentNum + stepsForward);
- currentNum += stepsForward;
- }
- break;
- case "Back":
- int stepsBack = Integer.parseInt(command[1]);
- if (currentNum - stepsBack >= 0) {
- houseNumbers.remove(currentNum - stepsBack);
- currentNum -= stepsBack;
- }
- break;
- case "Gift":
- if (Integer.parseInt(command[1]) >= 0
- && Integer.parseInt(command[1]) < houseNumbers.size()) {
- houseNumbers.add(Integer.parseInt(command[1]), Integer.parseInt(command[2]));
- currentNum = Integer.parseInt(command[1]);
- }
- break;
- case "Swap":
- int firstIndex = houseNumbers.indexOf(Integer.parseInt(command[1]));
- int secondIndex = houseNumbers.indexOf(Integer.parseInt(command[2]));
- int value1 = Integer.parseInt(command[1]);
- int value2 = Integer.parseInt(command[2]);
- if (firstIndex != -1 && secondIndex != -1) {
- houseNumbers.set(firstIndex, value2);
- houseNumbers.set(secondIndex, value1);
- }
- break;
- }
- }
- System.out.println("Position: " + currentNum);
- StringBuilder output = new StringBuilder();
- for (Integer number : houseNumbers) {
- output.append(number).append(", ");
- }
- System.out.print(output.toString().replaceAll(", $", ""));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment