Universal Cup Judging System

Universal Cup

حد الوقت: 1.0 s حد الذاكرة: 256 MB مجموع النقاط: 100 تفاعلية
الإحصائيات

Este problema es interactivo. Después de imprimir cada línea, debes vaciar el búfer de salida (flush). Puedes usar cout << flush en C++, System.out.flush() en Java y sys.stdout.flush() en Python. Debes seguir estrictamente las instrucciones de la sección Interacción; de lo contrario, podrías recibir veredictos como respuesta incorrecta (wrong answer), tiempo límite excedido (time limit exceeded) u otros.

Dado que todas las tareas tienen a enanos míticos como protagonistas, tal vez valga la pena pensar finalmente en algo tangible.

Hay una secuencia oculta $A$ de longitud $N$ que consta de enteros en el rango $[0, 2^N - 1]$. Tu tarea es recuperarla utilizando un número limitado de consultas. En cada consulta, proporcionas una secuencia $B$ de longitud $N$ con elementos en el rango $[0, 2^N - 1]$. La respuesta se calcula de la siguiente manera:

  • Se crea la secuencia $C$ donde el $i$-ésimo elemento de $C$ es el xor bit a bit (bitwise xor) de los $i$-ésimos elementos de $A$ y $B$. Denotamos el xor por $\oplus$.
  • El conjunto $S$ se construye como el conjunto de todos los valores que se pueden obtener aplicando xor a algún subconjunto de elementos de $C$. En particular, para el subconjunto vacío, el xor es $0$.
  • La respuesta a la consulta es $|S|$.

Por ejemplo, si $A = (1, 4, 3)$ y $B = (0, 4, 7)$, entonces $C = (1 \oplus 0, 4 \oplus 4, 3 \oplus 7) = (1, 0, 4)$ y $S = \{0, 1, 4, 5\}$, por lo que la respuesta es $4$.

El xor bit a bit de dos números $x$ e $y$ tiene el bit $i$ activado si y solo si exactamente uno de $x$ e $y$ tiene el bit $i$ activado. Por ejemplo, $5 \oplus 3 = (101)_2 \oplus (011)_2 = (110)_2 = 6$. En C++ y Python, el xor es el operador ^.

Interacción

La secuencia $A$ está fija al principio y no depende de las consultas realizadas.

Primero, lee una línea que contiene un entero $1 \le N \le 60$. Luego puedes hacer consultas.

Para hacer una consulta, imprime una línea que contenga ? seguido de $N$ enteros en el rango $[0, 2^N - 1]$. En respuesta, lee un entero que es la respuesta.

Cuando estés listo, imprime ! seguido de los $N$ enteros de la secuencia oculta. Luego tu programa debe terminar sin más salidas.

Recuerda vaciar la salida (flush) después de cada consulta y después de escribir la respuesta. Pon espacios entre los números y los símbolos ?, !.

Ejemplos

Entrada 1

3
4
8

Salida 1

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

Nota

La explicación de la interacción de ejemplo: $N = 3$ Consulta ? 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\}$, la respuesta es $4$. Consulta ? 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\}$, la respuesta es $8$. Salida ! 1 3 4: La secuencia oculta es $A = (1, 3, 4)$.

Pruebas locales

En la sección Files puedes encontrar B.zip que contiene pruebas de ejemplo y un evaluador grader.cpp. Para probar tu solución, compílala y luego pasa el nombre de la prueba y tu ejecutable al ./grader compilado:

./grader [test] [executable]

Por ejemplo: ./grader 0b.in ./abc

No se garantiza que el evaluador de ejemplo se comporte de manera idéntica al oficial. Sin embargo, ninguno de los dos es adaptativo.

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.