Universal Cup Judging System

Universal Cup

Límite de tiempo: 1.0 s Límite de memoria: 256 MB Puntuación total: 100 Interactivo
Estadísticas

Questo problema è interattivo. Dopo aver stampato ogni riga, devi svuotare il buffer di output (flush). Puoi usare cout << flush in C++, System.out.flush() in Java e sys.stdout.flush() in Python. Devi seguire rigorosamente le istruzioni nella sezione Interazione; in caso contrario potresti ricevere verdetti come risposta errata (wrong answer), tempo limite superato (time limit exceeded) o altri.

Poiché tutti i problemi hanno come protagonisti dei nani mitologici, potrebbe valere la pena pensare finalmente a qualcosa di tangibile.

C'è una sequenza nascosta $A$ di lunghezza $N$ composta da interi nell'intervallo $[0, 2^N - 1]$. Il tuo compito è recuperarla utilizzando un numero limitato di query. In ogni query, fornisci una sequenza $B$ di lunghezza $N$ con elementi nell'intervallo $[0, 2^N - 1]$. La risposta viene calcolata come segue:

  • Viene creata la sequenza $C$ in cui l'$i$-esimo elemento di $C$ è lo xor bit a bit (bitwise xor) degli $i$-esimi elementi di $A$ e $B$. Indichiamo lo xor con $\oplus$.
  • L'insieme $S$ viene costruito come l'insieme di tutti i valori ottenibili effettuando lo xor di un qualche sottoinsieme di elementi di $C$. In particolare, per il sottoinsieme vuoto, lo xor è $0$.
  • La risposta alla query è $|S|$.

Ad esempio, se $A = (1, 4, 3)$ e $B = (0, 4, 7)$, allora $C = (1 \oplus 0, 4 \oplus 4, 3 \oplus 7) = (1, 0, 4)$ e $S = \{0, 1, 4, 5\}$, quindi la risposta è $4$.

Lo xor bit a bit di due numeri $x$ e $y$ ha il bit $i$ impostato se e solo se esattamente uno tra $x$ e $y$ ha il bit $i$ impostato. Ad esempio, $5 \oplus 3 = (101)_2 \oplus (011)_2 = (110)_2 = 6$. In C++ e Python, lo xor è l'operatore ^.

Interazione

La sequenza $A$ è fissata all'inizio e non dipende dalle query effettuate.

Per prima cosa, leggi una riga contenente un intero $1 \le N \le 60$. Poi puoi effettuare delle query.

Per effettuare una query, stampa una riga contenente ? seguito da $N$ interi nell'intervallo $[0, 2^N - 1]$. In risposta, leggi un intero che rappresenta la risposta.

Quando sei pronto, stampa ! seguito dagli $N$ interi della sequenza nascosta. Dopodiché il tuo programma deve terminare senza ulteriore output.

Ricordati di svuotare l'output (flush) dopo ogni query e dopo aver scritto la risposta. Metti degli spazi tra i numeri e i simboli ?, !.

Esempi

Input 1

3
4
8

Output 1

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

Note

La spiegazione per l'interazione di esempio: $N = 3$ Query ? 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 risposta è $4$. Query ? 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 risposta è $8$. Output ! 1 3 4: La sequenza nascosta è $A = (1, 3, 4)$.

Test in locale

Nella sezione Files puoi trovare B.zip contenente i test di esempio e un grader grader.cpp. Per testare la tua soluzione, compilala, quindi passa il nome del test e il tuo eseguibile al ./grader compilato:

./grader [test] [executable]

Ad esempio: ./grader 0b.in ./abc

Non è garantito che il grader di esempio si comporti in modo identico a quello ufficiale. Tuttavia, nessuno dei due è adattivo.

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.