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.