QOJ.ac

QOJ

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

#19997. Jogo de criança com um robô

Statistics

Este é um problema interativo.

O pequeno Misha joga um jogo de criança com um robô. Neste jogo, o robô está num campo dividido em $3 \times 3$ quadrados e rodeado por barreiras. O jogo começa no quadrado central e consiste em realizar dez ações. Cada ação é a declamação de uma frase ou uma tentativa de se mover para um dos quadrados vizinhos. A declamação serve para esperar ou simplesmente para diversão.

Um dos quadrados é especial, mas Misha não sabe antecipadamente qual. O robô informa quando entra no quadrado especial. O objetivo do jogo é entrar no quadrado especial precisamente durante a décima ação.

Para comunicar com o robô, Misha usa entrada e saída de texto. São reconhecidos os seguintes comandos:

  • echo phrase — declamar phrase,

  • move north — mover um quadrado para norte,

  • move east — mover um quadrado para leste,

  • move south — mover um quadrado para sul,

  • move west — mover um quadrado para oeste.

Para cada comando de declamação, o robô lê a frase dada em voz alta e também a devolve em texto. Durante a declamação, o robô não se move. É garantido que o robô trata corretamente frases constituídas por caracteres com códigos ASCII de 32 a 126, inclusive, e com, no máximo, 256 caracteres.

Para cada comando de movimento, o robô devolve uma das quatro palavras:

  • bump se, em vez de se mover, o robô embateu numa barreira; nesse caso, permanece no mesmo quadrado,

  • moved se o robô se moveu com sucesso para um quadrado normal,

  • found se o robô entrou no quadrado especial durante uma das primeiras nove ações,

  • win se o robô entrou no quadrado especial durante a décima ação.

Ajude Misha a jogar de modo que, durante a décima ação, o robô imprima a palavra desejada win.

Interação

O programa da solução deve imprimir comandos para a saída padrão, um comando por linha. Para evitar que a saída fique retida no buffer, esvazie o buffer de saída após cada comando emitido: por exemplo, pode usar fflush (stdout) em C ou C++, System.out.flush () em Java, flush (output) em Pascal ou sys.stdout.flush () em Python.

A resposta a cada comando é devolvida à entrada padrão do programa da solução numa linha separada.

Depois de imprimir dez comandos, o programa da solução deve terminar corretamente.

Exemplos

No exemplo dado, o quadrado especial fica a leste do centro. É garantido que este será o primeiro teste ao avaliar a sua solução.

Os comandos (saída da solução) são apresentados à esquerda, e as respetivas respostas (entrada da solução), à direita.

Entrada 1

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

Saída 1

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

Nota

Em cada teste, o quadrado especial é escolhido antecipadamente e não muda durante o 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.