Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package MidExamPreparation.MidExamRetake10Jan19;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.List;
- import java.util.stream.Collectors;
- public class O2SantasGifts {
- public static void main(String[] args) throws IOException {
- BufferedReader reader =
- new BufferedReader(
- new InputStreamReader(
- System.in
- )
- );
- int numberOfCommands = Integer.parseInt(reader.readLine());
- List<Integer> houses = Arrays.stream(reader.readLine().split("\\s+"))
- .map(Integer::parseInt)
- .collect(Collectors.toList());
- String line;
- int lastPosition = 0;
- int currentPosition =0;
- for (int i = 0; i < numberOfCommands; i++) {
- line = reader.readLine();
- String[] token = line.split("\\s+");
- String command = token[0].toLowerCase();
- switch (command) {
- case "forward" :
- currentPosition += Integer.parseInt(token[1]);
- if (currentPosition >= 0 && currentPosition <= houses.size()-1) {
- houses.remove(currentPosition);
- } else {
- currentPosition -= Integer.parseInt(token[1]);
- }
- break;
- case "back" :
- currentPosition -= Integer.parseInt(token[1]);
- if (currentPosition >= 0 && currentPosition <= houses.size()-1) {
- houses.remove(currentPosition);
- } else {
- currentPosition += Integer.parseInt(token[1]);
- }
- break;
- case "gift" :
- if (Integer.parseInt(token[1]) >= 0 &&
- Integer.parseInt(token[1]) < houses.size()
- ) {
- houses.add(Integer.parseInt(token[1]), Integer.parseInt(token[2]));
- currentPosition = Integer.parseInt(token[1]);
- }
- break;
- case "swap" :
- int first = houses.indexOf(Integer.parseInt(token[1]));
- int second = houses.indexOf(Integer.parseInt(token[2]));
- if ((first >= 0 &&
- first < houses.size()) &&
- (second >= 0 &&
- second < houses.size())
- ) {
- Collections.swap(houses, first, second);
- }
- break;
- default:
- break;
- }
- lastPosition = currentPosition;
- }
- System.out.printf("Position: %d%n", lastPosition);
- System.out.println(
- houses
- .toString()
- .replaceAll("[\\[\\]]", "")
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment