Universal Cup Judging System

Universal Cup

Time Limit: 1.0 s Memory Limit: 256 MB Total points: 100 Interactive
Statistics

Soal ini bersifat interaktif. Setelah mencetak setiap baris, Anda harus mengosongkan buffer keluaran (flush). Anda dapat menggunakan cout << flush di C++, System.out.flush() di Java, dan sys.stdout.flush() di Python. Anda harus mengikuti instruksi di bagian Interaksi dengan ketat; jika tidak, Anda mungkin menerima vonis seperti jawaban salah (wrong answer), batas waktu terlampaui (time limit exceeded), atau lainnya.

Karena semua tugas memiliki kurcaci mitos sebagai karakter utamanya, mungkin ada baiknya akhirnya memikirkan sesuatu yang nyata.

Terdapat sebuah barisan tersembunyi $A$ dengan panjang $N$ yang terdiri dari bilangan bulat dalam rentang $[0, 2^N - 1]$. Tugas Anda adalah memulihkannya menggunakan jumlah kueri yang terbatas. Dalam setiap kueri, Anda memberikan sebuah barisan $B$ dengan panjang $N$ dengan elemen-elemen dalam rentang $[0, 2^N - 1]$. Responsnya dihitung sebagai berikut:

  • Barisan $C$ dibuat di mana elemen ke-$i$ dari $C$ adalah bitwise xor dari elemen ke-$i$ dari $A$ dan $B$. Kita melambangkan xor dengan $\oplus$.
  • Himpunan $S$ dibentuk sebagai himpunan semua nilai yang dapat diperoleh dengan melakukan xor pada suatu himpunan bagian dari elemen-elemen $C$. Khususnya, untuk himpunan bagian kosong, hasil xor-nya adalah $0$.
  • Jawaban untuk kueri tersebut adalah $|S|$.

Sebagai contoh, jika $A = (1, 4, 3)$ dan $B = (0, 4, 7)$, maka $C = (1 \oplus 0, 4 \oplus 4, 3 \oplus 7) = (1, 0, 4)$ dan $S = \{0, 1, 4, 5\}$, sehingga jawabannya adalah $4$.

Bitwise xor dari dua bilangan $x$ dan $y$ memiliki bit $i$ bernilai aktif jika dan hanya jika tepat satu dari $x$ dan $y$ memiliki bit $i$ bernilai aktif. Sebagai contoh, $5 \oplus 3 = (101)_2 \oplus (011)_2 = (110)_2 = 6$. Di C++ dan Python, xor adalah operator ^.

Interaksi

Barisan $A$ sudah ditetapkan sejak awal dan tidak bergantung pada kueri yang dilakukan.

Pertama, baca satu baris yang berisi satu bilangan bulat $1 \le N \le 60$. Kemudian Anda dapat mengajukan kueri.

Untuk mengajukan kueri, cetak satu baris yang berisi ? diikuti oleh $N$ bilangan bulat dalam rentang $[0, 2^N - 1]$. Sebagai respons, baca satu bilangan bulat yang merupakan jawabannya.

Ketika sudah siap, cetak ! diikuti oleh $N$ bilangan bulat dari barisan tersembunyi tersebut. Kemudian program Anda harus keluar tanpa keluaran lebih lanjut.

Ingatlah untuk melakukan flush setelah setiap kueri dan setelah menulis jawaban. Berikan spasi antara angka dan simbol ?, !.

Contoh

Masukan 1

3
4
8

Keluaran 1

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

Catatan

Penjelasan untuk interaksi contoh: $N = 3$ Kueri ? 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\}$, jawabannya adalah $4$. Kueri ? 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\}$, jawabannya adalah $8$. Keluaran ! 1 3 4: Barisan tersembunyi tersebut adalah $A = (1, 3, 4)$.

Pengujian Lokal

Di bagian Files Anda dapat menemukan B.zip yang berisi uji contoh dan grader grader.cpp. Untuk menguji solusi Anda, kompilasi solusi tersebut, lalu berikan nama uji dan berkas eksekusi Anda ke ./grader yang telah dikompilasi:

./grader [test] [executable]

Sebagai contoh: ./grader 0b.in ./abc

Grader contoh tidak dijamin berperilaku identik dengan grader resmi. Namun, keduanya tidak bersifat adaptif.

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.