QOJ.ac

QOJ

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

#19997. Детская игра с роботом

Statistics

Это интерактивная задача.

Маленький Misha играет с роботом в детскую игру. В этой игре робот стоит на поле, разделённом на $3 \times 3$ клетки и окружённом границами. Игра начинается в центральной клетке и состоит из выполнения десяти действий. Каждое действие — это либо декламация фразы, либо попытка перейти в одну из соседних клеток. Декламация используется для ожидания или просто для развлечения.

Одна из клеток особая, но Misha заранее не знает, какая. Робот сообщает, когда переходит в особую клетку. Цель игры — перейти в особую клетку ровно во время десятого действия.

Для общения с роботом Misha использует текстовый ввод и вывод. Распознаются следующие команды:

  • echo phrase — декламация phrase,

  • move north — перемещение на одну клетку на север,

  • move east — перемещение на одну клетку на восток,

  • move south — перемещение на одну клетку на юг,

  • move west — перемещение на одну клетку на запад.

Для каждой команды декламации робот громко читает заданную фразу, а также выводит её обратно в текстовом виде. Во время декламации робот не перемещается. Гарантируется, что робот корректно обрабатывает фразы, состоящие из символов с кодами ASCII от 32 до 126 включительно и имеющие длину не более 256 символов.

Для каждой команды перемещения робот выводит одно из четырёх слов:

  • bump, если вместо перемещения робот ударился о препятствие; в таком случае он остаётся в той же клетке,

  • moved, если робот успешно перешёл в обычную клетку,

  • found, если робот перешёл в особую клетку во время одного из первых девяти действий,

  • win, если робот перешёл в особую клетку во время десятого действия.

Помогите Misha сыграть так, чтобы во время десятого действия робот вывел желаемое слово win.

Протокол взаимодействия

Программа решения должна выводить команды в стандартный вывод, по одной команде в строке. Чтобы предотвратить буферизацию вывода, сбрасывайте буфер вывода после каждой выданной команды: например, можно использовать fflush (stdout) в C или C++, System.out.flush () в Java, flush (output) в Pascal или sys.stdout.flush () в Python.

Ответ на каждую команду передаётся в стандартный ввод программы решения в отдельной строке.

После вывода десяти команд программа решения должна корректно завершиться.

Примеры

В данном примере особая клетка находится к востоку от центра. Гарантируется, что этот тест будет первым при проверке вашего решения.

Команды (вывод решения) приведены слева, а ответы на них (ввод решения) — справа.

Входные данные 1

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

Выходные данные 1

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

Примечание

В каждом тесте особая клетка выбирается заранее и не изменяется в течение соревнования.

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.