Universal Cup Judging System

Universal Cup

Limite de temps : 1.0 s Limite de mémoire : 256 MB Points totaux : 100 Interactif
Statistiques

Это интерактивная задача. После вывода каждой строки необходимо сбрасывать буфер вывода (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.