Advertisement
damesova

Santa's Gifts [Mimi]

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