Robot-to-Wall X94198


Statement
 

pdf   zip

Queremos simular un pequeño juego donde un pequeño robot se mueve en línea recta (horizontal o verticalmente) para ver dónde va a parar según los movimientos que le pida el usuario.

El tablero por donde se mueve el robot es rectangular, de nn filas por mm columnas, y en cada casilla del tablero puede haber una pared (’#’) o bien la casilla está libre (’.’). El robot no puede entrar en las casillas donde hay una pared pero puede pasar por aquellas que estan libres.

El robot empieza en una casilla dada y, al realizar un movimiento, avanza en línea recta hasta que una pared le impida seguir avanzando, o bien se salga del tablero. Los movimientos posibles son las 4 direcciones básicas "izquierda", "derecha", "arriba" y "abajo". En los movimientos a derecha o izquierda, se mantiene la fila y cambia la columna, y en los movimientos de abajo o arriba, se mantiene la columna y cambia la fila.

Entrada

La entrada empieza con dos enteros, nn y mm, que indican el tamaño del tablero. Luego vienen n×mn\times m caracteres (’.’ o ’#’) que representan el tablero. Seguidamente viene la posición inicial del robot, (f,c)(f, c), con 1fn1 \leq f \leq n siendo la fila, y 1cm1 \leq c \leq m la columna.Finalmente viene una secuencia de palabras sin centinela que representan las direcciones de los movimientos que debe realizar el robot.

Salida

La salida muestra el tablero tal como queda al final de la simulación, en el mismo formato que estaba a la entrada, pero con el robot marcado con una O mayúscula, ’O’. Después de mostrar el tablero hay que poner una línea vacía. Y al final, si el robot se ha salido del tablero, hay que añadir el texto "El robot se ha salido.".

Observaciones

Se garantiza que la posición inicial es una casilla libre (’.’).

Public test cases
  • Input

    4 6
    .....#
    .###.#
    .#...#
    #...##
    1 1
    derecha abajo izquierda abajo

    Output

    .....#
    .###.#
    .#...#
    #...##
    
    El robot se ha salido.
    
  • Input

    5 8
    .#....#.
    #......#
    ..#....#
    #.......
    .#....#.
    3 4
    derecha arriba abajo izquierda arriba derecha izquierda abajo
    

    Output

    .#....#.
    #......#
    ..#....#
    #O......
    .#....#.
    
    
  • Input

    5 10
    .........#
    #........#
    #.......##
    ###.....##
    ####...###
    1 1
    derecha abajo izquierda abajo derecha abajo izquierda 

    Output

    .........#
    #........#
    #.......##
    ###O....##
    ####...###
    
    
  • Information
    Author
    PRO1
    Language
    Spanish
    Translator
    Original language
    Catalan
    Other languages
    Catalan
    Official solutions
    C++
    User solutions
    C++