Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.scalefocus;
- import java.util.Arrays;
- import java.util.Scanner;
- import java.util.stream.Stream;
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int fieldSize = Integer.parseInt(sc.nextLine());
- int[] initialField = new int[fieldSize];
- String command = "";
- int[] initialFieldIndex = Arrays.stream(sc.nextLine()
- .split(" "))
- .mapToInt(e -> Integer.parseInt(e))
- .toArray();
- for (int i = 0; i < initialFieldIndex.length; i++) {
- if (initialFieldIndex[i] >=0 && initialFieldIndex[i]<initialField.length){
- initialField[initialFieldIndex[i]] = 1;
- }
- }
- while (true) {
- command = sc.nextLine();
- if (command.equals("end")) {
- break;
- } else {
- String[] commands = command.split(" ");
- int indexOfLadybug = Integer.parseInt(commands[0]);
- String direction = commands [1];
- int factorOfDirection = 0;
- switch (direction) {
- case "right" : factorOfDirection = 1; break;
- case "left" : factorOfDirection = -1; break;
- }
- int flyLength = Integer.parseInt(commands[2]);
- if (indexOfLadybug >= 0 && indexOfLadybug < fieldSize && initialField[indexOfLadybug] !=0) {
- int flightRange = factorOfDirection * flyLength;
- while (indexOfLadybug + flightRange >= 0 && indexOfLadybug + flightRange < fieldSize) {
- if (initialField[indexOfLadybug + flightRange] == 0) {
- initialField[indexOfLadybug] = 0;
- initialField[indexOfLadybug + flightRange] = 1;
- break;
- } else {
- flightRange += flightRange;
- }
- } initialField[indexOfLadybug] = 0;
- }
- }
- }
- for (int value : initialField) {
- System.out.print(value + " ");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement