Universal Cup Judging System

Universal Cup

Límite de tiempo: 1 s Límite de memoria: 2048 MB Puntuación total: 100 Dificultad: [mostrar] Interactivo Hackeable ✓
Estadísticas

هذه مسألة تفاعلية.

لدى Little Cyan Fish رسم بياني بسيط غير موجه ومخفي يتكون من $n$ رؤوس، مرقمة من $1$ إلى $n$. أنت تعرف قيمة $n$، لكنك لا تعرف أياً من الحواف. يحب Little Cyan Fish مفهوم القطع (cut). لمجموعة من الرؤوس $S$، ليكن $\operatorname{cut}(S)$ هو عدد الحواف التي يقع طرف واحد منها بالضبط في $S$.

problem_22880_c88365aab9e24b99bbd5b96995883b80.png

يسمح لك Little Cyan Fish بمقارنة القطوع عن طريق إجراء استعلامات. في الاستعلام الواحد، تختار مجموعتين من الرؤوس $S_1$ و $S_2$. يخبرك Little Cyan Fish ما إذا كان $\operatorname{cut}(S_1)$ أصغر من أو يساوي أو أكبر من $\operatorname{cut}(S_2)$.

ربما يمكنك التنبؤ بأن الجزء التالي سيكون حول استعادة الرسم البياني، لكن المهمة هذه المرة أسهل. يعطيك Little Cyan Fish رأساً $u$، ويريد منك إيجاد جميع الرؤوس المجاورة للرأس $u$ في ما لا يزيد عن $n + 10$ استعلامات.

الإدخال

يحتوي السطر الأول من الإدخال على عددين صحيحين $n$ و $u$ ($1 \le n \le 1000$، $1 \le u \le n$)، يشيران إلى عدد الرؤوس والرأس المعطى على التوالي. بعد ذلك، يبدأ التفاعل.

التفاعل

لإجراء استعلام، اطبع سطراً بالتنسيق التالي:

$$?\ s_1\ s_2$$

حيث $s_1$ و $s_2$ سلسلتان نصيتان بطول $n$، تتكونان فقط من الحرفين 0 و 1. لكل $j \in \{1, 2\}$، ينتمي الرأس $i$ إلى $S_j$ إذا وفقط إذا كان الحرف ذو الترتيب $i$ في $s_j$ هو 1. قد تكون المجموعتان فارغتين، وقد تتقاطعان، وقد تكونان متساويتين.

كاستجابة للاستعلام، ستحصل على حرف واحد < أو = أو >، مما يعني أن $\operatorname{cut}(S_1)$ أصغر من أو يساوي أو أكبر من $\operatorname{cut}(S_2)$ على التوالي. يجب عليك التأكد من أن عدد الاستعلامات التي تجريها لا يتجاوز $n + 10$.

للإبلاغ عن الإجابة، اطبع سطراً بالتنسيق التالي:

$$!\ k\ v_1\ v_2\ \dots\ v_k$$

حيث $k$ ($0 \le k \le n - 1$) هو عدد الرؤوس المجاورة للرأس $u$، و $v_1, v_2, \ldots, v_k$ هي أرقامها المختلفة بأي ترتيب. إذا كان $k = 0$، فاطبع ! 0. لا يُحتسب الإبلاغ عن الإجابة كاستعلام. يجب أن يتوقف برنامجك فوراً بعد الإبلاغ عن الإجابة.

بعد طباعة استعلام أو الإبلاغ عن الإجابة، لا تنسَ طباعة محرف سطر جديد وتفريغ مجرى الإخراج (flush). إذا قمت بإجراء استعلام غير صالح أو تجاوزت حد الاستعلامات، فسيقوم المتفاعل بإغلاق مجرى الإدخال ويجب أن يتوقف برنامجك.

في هذه المسألة، المتفاعل تكيفي (adaptive). هذا يعني أن الرسم البياني قد يتغير اعتماداً على استعلاماتك، طالما أنه لا يتناقض مع أي استجابة سابقة. يجب أن تكون إجابتك صحيحة لكل رسم بياني متسق مع جميع الاستجابات التي تلقيتها.

أمثلة

الإدخال 1

4 1

<

=

<

=

الإخراج 1

? 0000 1000

? 0100 1100

? 0010 1010

? 0001 1001

! 2 2 4

ملاحظة

أحد الرسوم البيانية المتسقة مع تفاعل المثال يحتوي على الحواف $(1, 2)$ و $(1, 4)$ و $(2, 3)$.

problem_22880_2dcb0fb296e7aa6b2806ae2a9f6861fe.png

أداة الاختبار: يتم توفير أداة اختبار لمساعدة المتسابقين على تطوير واختبار حلولهم. يمكنك تنزيل هذه الأداة من المرفقات. شغّل الأداة مع الخيار -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.