Didart

Santa’s Gifts

Oct 23rd, 2021
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.62 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 SantasGifts {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         int n = Integer.parseInt(scanner.nextLine());
  11.         List<Integer> houseNumbers = Arrays.stream(scanner.nextLine()
  12.                 .split("\\s+"))
  13.                 .map(Integer::parseInt)
  14.                 .collect(Collectors.toList());
  15.  
  16.         int currentNum = 0;
  17.         for (int i = 0; i < n; i++) {
  18.             String input = scanner.nextLine();
  19.             String[] command = input.split("\\s+");
  20.  
  21.             switch (command[0]) {
  22.                 case "Forward":
  23.                     int stepsForward = Integer.parseInt(command[1]);
  24.                     if (currentNum + stepsForward < houseNumbers.size()) {
  25.                         houseNumbers.remove(currentNum + stepsForward);
  26.                         currentNum += stepsForward;
  27.                     }
  28.                     break;
  29.                 case "Back":
  30.                     int stepsBack = Integer.parseInt(command[1]);
  31.                     if (currentNum - stepsBack >= 0) {
  32.                         houseNumbers.remove(currentNum - stepsBack);
  33.                         currentNum -= stepsBack;
  34.                     }
  35.                     break;
  36.                 case "Gift":
  37.                     if (Integer.parseInt(command[1]) >= 0
  38.                             && Integer.parseInt(command[1]) < houseNumbers.size()) {
  39.                         houseNumbers.add(Integer.parseInt(command[1]), Integer.parseInt(command[2]));
  40.                         currentNum = Integer.parseInt(command[1]);
  41.                     }
  42.                     break;
  43.                 case "Swap":
  44.                     int firstIndex = houseNumbers.indexOf(Integer.parseInt(command[1]));
  45.                     int secondIndex = houseNumbers.indexOf(Integer.parseInt(command[2]));
  46.                     int value1 = Integer.parseInt(command[1]);
  47.                     int value2 = Integer.parseInt(command[2]);
  48.                     if (firstIndex != -1 && secondIndex != -1) {
  49.                         houseNumbers.set(firstIndex, value2);
  50.                         houseNumbers.set(secondIndex, value1);
  51.                     }
  52.                     break;
  53.             }
  54.         }
  55.         System.out.println("Position: " + currentNum);
  56.         StringBuilder output = new StringBuilder();
  57.         for (Integer number : houseNumbers) {
  58.             output.append(number).append(", ");
  59.         }
  60.         System.out.print(output.toString().replaceAll(", $", ""));
  61.     }
  62. }
  63.  
  64.  
Advertisement
Add Comment
Please, Sign In to add comment