Robots (2) P30744


Statement
 

pdf   zip

html

This is a variation of the exercise P98423: “Robots (1)”. Write a program to simulate the movements of a robot located in a rectangular world with n rows and m columns. The robot receives a sequence of orders about where to move, either to the right, to the left, upwards or downwards. The simulation must end if any instruction is incorrect, if the robot goes out of the world, or if the robot repeats any position.

Input

The first line contains two strictly positive natural numbers n and m. The second line has the initial row (between 1 and n) and the initial column (between 1 and m). Follow several orders, one per line. Each order is a non-empty word made up of only lowercase letters.

Output

Print the positions visited by the robot, starting with the initial position. If the robot goes out of the world, or if the robot repeats a position, or if any order is not “right”, “left”, “up” or “down”, print “out of bounds”, “repeated position” or “incorrect order” and stop the simulation.

Public test cases
  • Input

    10 20
    5 5
    right
    up
    left
    down
    

    Output

    (5, 5)
    (5, 6)
    (4, 6)
    (4, 5)
    repeated position
    
  • Input

    3 7
    2 6
    right
    diagonal
    down
    

    Output

    (2, 6)
    (2, 7)
    incorrect order
    
  • Input

    5 1
    3 1
    down
    down
    down
    down
    down
    

    Output

    (3, 1)
    (4, 1)
    (5, 1)
    out of bounds
    
  • Information
    Author
    Salvador Roura
    Language
    English
    Translator
    Carlos Molina
    Original language
    Catalan
    Other languages
    Catalan
    Official solutions
    C++
    User solutions
    C++