QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 256 MB Total points: 100

#19997. Juego infantil con un robot

Statistics

Este es un problema interactivo.

El pequeño Misha juega a un juego infantil con un robot. En este juego, el robot está en un terreno dividido en $3 \times 3$ casillas y rodeado de barreras. El juego comienza en la casilla central y consiste en realizar diez acciones. Cada acción es recitar una frase o intentar moverse a una de las casillas vecinas. Recitar sirve para esperar, o simplemente para divertirse.

Una de las casillas es especial, pero Misha no sabe de antemano cuál. El robot avisa cuando entra en la casilla especial. El objetivo del juego es entrar en la casilla especial precisamente durante la décima acción.

Para comunicarse con el robot, Misha utiliza entrada y salida de texto. Se reconocen los siguientes comandos:

  • echo phrase — recitar phrase,

  • move north — moverse una casilla hacia el norte,

  • move east — moverse una casilla hacia el este,

  • move south — moverse una casilla hacia el sur,

  • move west — moverse una casilla hacia el oeste.

Para cada comando de recitación, el robot lee en voz alta la frase dada y también la devuelve como texto. Durante la recitación, el robot no se mueve. Se garantiza que el robot procesa correctamente las frases formadas por caracteres con códigos ASCII del 32 al 126, ambos inclusive, y de longitud máxima de 256 caracteres.

Para cada comando de movimiento, el robot devuelve una de las cuatro palabras:

  • bump si, en lugar de moverse, el robot chocó con una barrera; en ese caso, permanece en la misma casilla,

  • moved si el robot se movió correctamente a una casilla normal,

  • found si el robot entró en la casilla especial durante una de las primeras nueve acciones,

  • win si el robot entró en la casilla especial durante la décima acción.

Ayuda a Misha a jugar de modo que, durante la décima acción, el robot imprima la palabra deseada win.

Interacción

El programa solución debe imprimir comandos en la salida estándar, un comando por línea. Para evitar el almacenamiento de la salida en un búfer, vacía el búfer de salida después de cada comando que emitas: por ejemplo, puedes usar fflush (stdout) en C o C++, System.out.flush () en Java, flush (output) en Pascal o sys.stdout.flush () en Python.

La respuesta a cada comando se devuelve a la entrada estándar del programa solución en una línea independiente.

Después de imprimir diez comandos, el programa solución debe terminar correctamente.

Ejemplos

En el ejemplo dado, la casilla especial está al este del centro. Se garantiza que esta será la primera prueba al evaluar tu solución.

Los comandos (salida de la solución) se muestran a la izquierda, y sus respuestas (entrada de la solución), a la derecha.

Entrada 1

moved
moved
found
moved
found
bump
moved
Ready!
Steady...
win

Salida 1

move north
move east
move south
move west
move east
move east
move south
echo Ready!
echo Steady...
move north

Nota

En cada prueba, la casilla especial se elige de antemano y no cambia durante el concurso.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.