QOJ.ac

QOJ

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

#19997. Dziecięca gra z robotem

Statistics

To jest zadanie interaktywne.

Mały Misha gra z robotem w dziecięcą grę. Robot stoi na polu podzielonym na $3 \times 3$ kwadraty i otoczonym barierami. Gra zaczyna się na środkowym kwadracie i polega na wykonaniu dziesięciu akcji. Każda akcja to wygłoszenie frazy albo próba przejścia na jeden z sąsiednich kwadratów. Wygłaszanie służy do czekania lub po prostu do zabawy.

Jeden z kwadratów jest specjalny, lecz Misha nie wie z góry, który. Robot informuje, gdy wejdzie na specjalny kwadrat. Celem gry jest wejście na specjalny kwadrat dokładnie podczas dziesiątej akcji.

Do komunikacji z robotem Misha używa tekstowego wejścia i wyjścia. Rozpoznawane są następujące polecenia:

  • echo phrase — wygłoszenie phrase,

  • move north — przejście o jeden kwadrat na północ,

  • move east — przejście o jeden kwadrat na wschód,

  • move south — przejście o jeden kwadrat na południe,

  • move west — przejście o jeden kwadrat na zachód.

Po każdym poleceniu wygłoszenia robot głośno odczytuje podaną frazę, a także wypisuje ją z powrotem jako tekst. Podczas wygłaszania robot się nie porusza. Robot na pewno poprawnie obsługuje frazy złożone ze znaków o kodach ASCII od 32 do 126 włącznie i mające co najwyżej 256 znaków.

Po każdym poleceniu ruchu robot wypisuje jedno z czterech słów:

  • bump, jeśli zamiast się przemieścić, robot uderzył w barierę; w takim przypadku pozostaje na tym samym kwadracie,

  • moved, jeśli robot pomyślnie przeszedł na zwykły kwadrat,

  • found, jeśli robot wszedł na specjalny kwadrat podczas jednej z pierwszych dziewięciu akcji,

  • win, jeśli robot wszedł na specjalny kwadrat podczas dziesiątej akcji.

Pomóż Mishy grać tak, aby podczas dziesiątej akcji robot wypisał upragnione słowo win.

Interakcja

Program rozwiązania musi wypisywać polecenia na standardowe wyjście, po jednym w wierszu. Aby zapobiec buforowaniu wyjścia, opróżniaj bufor wyjściowy po każdym wydanym poleceniu: można to zrobić na przykład za pomocą fflush (stdout) w C lub C++, System.out.flush () w Javie, flush (output) w Pascalu albo sys.stdout.flush () w Pythonie.

Odpowiedź na każde polecenie jest przekazywana na standardowe wejście programu rozwiązania w osobnym wierszu.

Po wypisaniu dziesięciu poleceń program rozwiązania musi zakończyć się poprawnie.

Przykład

W podanym przykładzie specjalny kwadrat leży na wschód od środka. Gwarantuje się, że ten test będzie pierwszy podczas sprawdzania rozwiązania.

Polecenia (wyjście rozwiązania) są podane po lewej, a odpowiedzi na nie (wejście rozwiązania) po prawej.

Wejście 1

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

Wyjście 1

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

Uwagi

W każdym teście specjalny kwadrat jest wybierany z góry i nie zmienia się podczas zawodów.

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.