Universal Cup Judging System

Universal Cup

시간 제한: 1 s 메모리 제한: 2048 MB 총점: 100 난이도: [표시] 인터랙티브 해킹 가능 ✓
통계

Це інтерактивна задача.

У Маленької Ціанової Рибки є прихований простий неорієнтований граф із $n$ вершинами, пронумерованими від $1$ до $n$. Вам відоме значення $n$, але ви не знаєте жодного ребра. Маленька Ціанова Рибка дуже любить поняття розрізу (cut). Для множини вершин $S$ позначимо через $\operatorname{cut}(S)$ кількість ребер, у яких рівно один кінець належить $S$.

problem_22880_c88365aab9e24b99bbd5b96995883b80.png

Маленька Ціанова Рибка дозволяє вам порівнювати розрізи за допомогою запитів. В одному запиті ви обираєте дві множини вершин $S_1$ та $S_2$. Маленька Ціанова Рибка повідомляє вам, чи є величина $\operatorname{cut}(S_1)$ меншою, рівною або більшою за $\operatorname{cut}(S_2)$.

Ви, мабуть, можете передбачити, що далі йтиметься про відновлення графа, але цього разу завдання простіше. Маленька Ціанова Рибка дає вам вершину $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). Якщо ви зробите некоректний запит або перевищите ліміт запитів, інтерактор закриє вхідний потік, і ваша програма повинна завершитися.

У цій задачі інтерактор є адаптивним. Це означає, що граф може змінюватися залежно від ваших запитів, доки це не суперечить жодній із попередніх відповідей. Ваша відповідь має бути правильною для будь-якого графа, що узгоджується з усіма отриманими вами відповідями.

Приклади

Вхідні дані 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.