QOJ.ac

QOJ

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

#19997. Permainan Anak dengan Robot

Statistics

Ini adalah soal interaktif.

Misha kecil bermain permainan anak dengan sebuah robot. Dalam permainan ini, robot berdiri di lapangan yang dibagi menjadi $3 \times 3$ petak dan dikelilingi pembatas. Permainan dimulai dari petak tengah dan terdiri atas sepuluh tindakan. Setiap tindakan berupa pembacaan sebuah frasa atau upaya untuk berpindah ke salah satu petak yang bertetangga. Pembacaan digunakan untuk menunggu, atau sekadar untuk bersenang-senang.

Salah satu petak bersifat khusus, tetapi Misha tidak mengetahui sebelumnya petak yang mana. Robot melaporkan saat ia berpindah ke petak khusus. Tujuan permainan adalah berpindah ke petak khusus tepat pada tindakan kesepuluh.

Untuk berkomunikasi dengan robot, Misha menggunakan masukan dan keluaran teks. Perintah berikut dikenali:

  • echo phrase — membaca phrase,

  • move north — bergerak satu petak ke utara,

  • move east — bergerak satu petak ke timur,

  • move south — bergerak satu petak ke selatan,

  • move west — bergerak satu petak ke barat.

Untuk setiap perintah pembacaan, robot membacakan frasa yang diberikan dengan suara keras, dan juga mencetaknya kembali dalam bentuk teks. Selama pembacaan, robot tidak bergerak. Robot dijamin dapat menangani dengan benar frasa yang terdiri atas karakter berkode ASCII dari 32 hingga 126 inklusif dan memiliki panjang paling banyak 256 karakter.

Untuk setiap perintah gerakan, robot mencetak kembali salah satu dari empat kata:

  • bump jika alih-alih bergerak, robot menabrak pembatas; dalam hal ini robot tetap berada di petak yang sama,

  • moved jika robot berhasil berpindah ke petak biasa,

  • found jika robot berpindah ke petak khusus pada salah satu dari sembilan tindakan pertama,

  • win jika robot berpindah ke petak khusus pada tindakan kesepuluh.

Bantu Misha memainkan permainan ini sehingga pada tindakan kesepuluh, robot mencetak kata yang diinginkan, yaitu win.

Interaksi

Program solusi harus mencetak perintah ke keluaran standar, satu perintah per baris. Untuk mencegah penyanggaan keluaran, lakukan flush pada penyangga keluaran setelah setiap perintah yang Anda keluarkan: misalnya, dengan menggunakan fflush (stdout) dalam C atau C++, System.out.flush () dalam Java, flush (output) dalam Pascal, atau sys.stdout.flush () dalam Python.

Jawaban untuk setiap perintah dikirim kembali ke masukan standar program solusi pada baris tersendiri.

Setelah mencetak sepuluh perintah, program solusi harus berhenti dengan benar.

Contoh

Pada contoh yang diberikan, petak khusus terletak di sebelah timur petak tengah. Dijamin bahwa pengujian ini akan menjadi yang pertama saat memeriksa solusi Anda.

Perintah (keluaran solusi) diberikan di sebelah kiri, sedangkan jawaban untuk perintah tersebut (masukan solusi) di sebelah kanan.

Masukan 1

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

Keluaran 1

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

Catatan

Pada setiap pengujian, petak khusus dipilih sebelumnya dan tidak berubah selama kontes.

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.