Universal Cup Judging System

Universal Cup

시간 제한: 1.0 s 메모리 제한: 256 MB 총점: 100 인터랙티브
통계

Це інтерактивна задача. Після виведення кожного рядка необхідно скидати буфер виведення (flush). Ви можете використовувати cout << flush у C++, System.out.flush() у Java та sys.stdout.flush() у Python. Ви повинні суворо дотримуватися інструкцій у розділі «Протокол взаємодії», інакше ви можете отримати вердикт «неправильна відповідь» (wrong answer), «перевищено ліміт часу» (time limit exceeded) або інший.

Оскільки в усіх задачах головними героями є міфічні гноми, можливо, нарешті варто подумати про щось відчутне.

Є прихована послідовність $A$ довжини $N$, що складається з цілих чисел у діапазоні $[0, 2^N - 1]$. Ваше завдання — відновити її за обмежену кількість запитів. У кожному запиті ви надаєте послідовність $B$ довжини $N$ з елементами в діапазоні $[0, 2^N - 1]$. Відповідь обчислюється таким чином:

  • Створюється послідовність $C$, де $i$-й елемент $C$ дорівнює побітовому виключному АБО (bitwise xor) $i$-х елементів $A$ та $B$. Ми позначаємо xor символом $\oplus$.
  • Множина $S$ будується як множина всіх значень, які можна отримати, взявши xor деякої підмножини елементів $C$. Зокрема, для порожньої підмножини xor дорівнює $0$.
  • Відповіддю на запит є $|S|$.

Наприклад, якщо $A = (1, 4, 3)$ і $B = (0, 4, 7)$, то $C = (1 \oplus 0, 4 \oplus 4, 3 \oplus 7) = (1, 0, 4)$ і $S = \{0, 1, 4, 5\}$, тому відповідь дорівнює $4$.

Побітове виключне АБО двох чисел $x$ та $y$ має встановлений біт $i$ тоді й лише тоді, коли рівно в одного з чисел $x$ та $y$ встановлений біт $i$. Наприклад, $5 \oplus 3 = (101)_2 \oplus (011)_2 = (110)_2 = 6$. У C++ та Python операція xor позначається оператором ^.

Протокол взаємодії

Послідовність $A$ зафіксована на початку і не залежить від зроблених запитів.

Спочатку зчитайте рядок, що містить одне ціле число $1 \le N \le 60$. Потім ви можете ставити запити.

Щоб поставити запит, виведіть рядок, що містить символ ?, за яким ідуть $N$ цілих чисел у діапазоні $[0, 2^N - 1]$. У відповідь зчитайте одне ціле число — відповідь на запит.

Коли будете готові, виведіть !, за яким ідуть $N$ цілих чисел прихованої послідовності. Після цього ваша програма повинна завершитися без подальшого виведення.

Не забувайте скидати буфер виведення після кожного запиту та після виведення відповіді. Ставте пробіли між числами та символами ?, !.

Приклади

Вхідні дані 1

3
4
8

Вихідні дані 1

? 1 2 3
? 0 0 0
! 1 3 4

Примітка

Пояснення до прикладу взаємодії: $N = 3$ Запит ? 1 2 3: $B = (1, 2, 3)$, $C = (1 \oplus 1, 3 \oplus 2, 4 \oplus 3) = (0, 1, 7)$, $S = \{0, 1, 6, 7\}$, відповідь дорівнює $4$. Запит ? 0 0 0: $B = (0, 0, 0)$, $C = (1 \oplus 0, 3 \oplus 0, 4 \oplus 0) = (1, 3, 4)$, $S = \{0, 1, \dots, 7\}$, відповідь дорівнює $8$. Виведення ! 1 3 4: Прихована послідовність дорівнює $A = (1, 3, 4)$.

Локальне тестування

У розділі Files ви можете знайти архів B.zip, що містить приклади тестів та грейдер grader.cpp. Щоб протестувати своє рішення, скомпілюйте його, а потім передайте ім'я тесту та ваш виконуваний файл скомпільованому ./grader:

./grader [test] [executable]

Наприклад: ./grader 0b.in ./abc

Не гарантується, що поведінка прикладу грейдера повністю збігається з офіційним. Проте жоден із них не є адаптивним.

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.