Universal Cup Judging System

Universal Cup

時間限制: 3 s 記憶體限制: 2048 MB 總分: 100 难度: [顯示] 互動 可 Hack ✓
统计

זוהי בעיה אינטראקטיבית. זכרו לרוקן את חוצץ הפלט אחרי כל הדפסה. לשם כך אפשר להשתמש באפשרויות הבאות:

  • fflush(stdout) או cout.flush() ב-C/C++;
  • System.out.flush() ב-Java וב-Kotlin;
  • sys.stdout.flush() ב-Python;
  • בשפות אחרות, עיינו בתיעוד.

ל-Little Cyan Fish יש תמורה סודית $p_0,p_1,\ldots,p_n$ באורך $n+1$, המורכבת מהמספרים השלמים מ-$0$ עד $n$. הוא רוצה שתנחשו את התמורה הסודית. לשם כך, Little Cyan Fish מאפשר לכם לבצע לכל היותר $1024$ שאילתות בצורה הבאה:

  • ? i j: קבלו את האינדקס $k$ ($0\le k\le n$) שעבורו $p_k=|p_i-p_j|$.

כמובן, כדי לבצע שאילתה תקינה, עליכם להבטיח ש-$i$ ו-$j$ הם שני מספרים שלמים בתחום $[0,n]$. לדוגמה, אם $p_0=2,p_1=0,p_2=1$, השאילתה ? 0 2 תחזיר את האינדקס $2$, שכן $|p_0-p_2|=|2-1|=1=p_2$.

Little Cyan Fish רוצה שתמצאו אסטרטגיה לגילוי התמורה. כמובן, הוא אינו רוצה שתנצחו במשחק בקלות רבה מדי. לכן הוא ישנה את התמורה $p$ באופן מסתגל כדי להכשיל אתכם (ראו פרטים נוספים בסעיף ״אינטראקציה״).

קלט

יש כמה מקרי בדיקה. השורה הראשונה בקלט מכילה מספר שלם יחיד $T$ ($1\le T\le100$), המציין את מספר מקרי הבדיקה.

לכל מקרה בדיקה, השורה הראשונה בקלט מכילה מספר שלם יחיד $n$ ($1\le n\le1000$). לאחר מכן מתחילה האינטראקציה.

אינטראקציה

כדי לבצע שאילתה, הדפיסו שורה בתבנית הבאה:

$$?\ i\ j$$

כאן $i$ ו-$j$ הם שני מספרים שלמים מ-$0$ עד $n$. עליכם להבטיח שמספר השאילתות אינו עולה על $1024$. בתשובה לשאילתה תקבלו מספר שלם $k$ שעבורו $p_k=|p_i-p_j|$.

כדי לדווח על התשובה, הדפיסו שורה בתבנית הבאה:

$$!\ p_0\ p_1\ \ldots\ p_n$$

כאן $p$ היא התמורה שברצונכם לדווח עליה.

לאחר הדפסת שאילתה או דיווח על התשובה, אל תשכחו להדפיס תו שורה חדשה ולרוקן את זרם הפלט.

בבעיה זו, האינטראקטור הוא מסתגל. כלומר, התמורה $p$ עשויה להשתנות בהתאם לשאילתותיכם, כל עוד היא אינה סותרת את השאילתות הקודמות ששאלתם.

דוגמאות

דוגמת אינטראקציה 1

קריאה:

1
3

כתיבה:

? 2 2

קריאה:

1

כתיבה:

? 0 3

קריאה:

3

כתיבה:

! 2 0 3 1

כלי בדיקה: מסופק כלי שמסייע למתחרים לפתח ולבדוק את פתרונותיהם. אפשר להוריד אותו מהקבצים המצורפים. הפעלתו עם האפשרות -h אמורה להציג הסבר לשימוש בו. כלי הבדיקה מממש רק חלק מתרחישי הבדיקה ורק חלק מהתפקוד של תוכנית השיפוט האמיתית.

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.