Ini adalah soal interaktif.
KUPC-kun menulis sebuah program yang menyelesaikan permasalahan berikut.
Diberikan sebuah pohon $T = (V, E)$ dengan $N$ simpul. Untuk sebuah barisan $\{a_1, \dots, a_k\}$ dari simpul-simpul $T$ dengan panjang $k$, definisikan skornya sebagai berikut. - Misalkan $d(u, v)$ adalah banyaknya sisi pada lintasan antara simpul $u$ dan $v$ di $T$. Maka skornya adalah $\prod_{i=1}^k d(a_i, a_{(i \bmod k)+1})$.
Diberikan sebuah himpunan bagian $S$ dari $V$. Untuk setiap $1 \le k \le N$, carilah nilai $q_k$ berikut. - Jumlah skor dari semua barisan simpul $\{a_1, \dots, a_k\}$ dengan panjang $k$ yang elemen-elemennya termasuk dalam $S$, diambil modulo $2^{61} - 1$.
KUPC-kun secara rahasia menyimpan informasi pohon $T$ terlebih dahulu, dan terus menggunakan $T$ sebagai pohon yang diberikan ke program tersebut.
Anda mencoba memulihkan informasi daun-daunnya menggunakan program di atas. Misalkan banyaknya simpul pada pohon adalah $N$, Anda dapat mengajukan pertanyaan berikut paling banyak $N$ kali.
- Pilih sebuah himpunan bagian $S$ dari $V$ dan tanyakan keluaran dari program tersebut.
Dengan asumsi bahwa program KUPC-kun benar, identifikasilah semua daun yang terdapat pada pohon $T$ dari informasi yang diperoleh melalui pertanyaan-pertanyaan tersebut.
Judge tidak bersifat adaptif, dan pohon $T$ sudah ditetapkan sebelum interaksi dimulai.
Protokol Interaksi
Pertama, $N$ diberikan dari masukan standar. ($2 \le N \le 50$)
Untuk setiap pertanyaan, keluarkan ke keluaran standar dalam format berikut.
? s1s2...sN
Di sini, $s_1s_2\cdots s_N$ adalah string dengan panjang $N$ yang menyatakan himpunan bagian $S$, dengan $s_i = 1$ jika $i \in S$, dan $s_i = 0$ jika $i \notin S$.
Sebagai respons, hal berikut diberikan dari masukan standar.
q1 q2 ... qN
Setelah Anda mengidentifikasi semua daun, keluarkan jawaban Anda dalam format berikut.
! t1t2...tN
Di sini, $t_1t_2\cdots t_N$ adalah string dengan panjang $N$, dengan $t_i = 1$ jika $i$ adalah daun, dan $t_i = 0$ jika bukan daun.
Setelah keluaran ini, segera hentikan program Anda.
Setiap kali Anda mengeluarkan sesuatu, tambahkan baris baru di bagian akhir dan lakukan flush pada keluaran standar.
Contoh
Contoh Masukan 1
5 0 8 0 32 0 0 44 108 968 3960 0 0 0 0 0 0 76 348 3336 22200
Contoh Keluaran 1
? 00101 ? 11001 ? 10000 ? 11111 ! 11001
Catatan
Untuk contoh pertama, himpunan sisi dari pohon yang disimpan secara rahasia oleh judge adalah $(1, 3), (2, 3), (3, 4), (4, 5)$.
Pada pertanyaan pertama, $S = \{3, 5\}$.
Perhatikan bahwa $d(3, 3) = 0, d(3, 5) = d(5, 3) = 2, d(5, 5) = 0$.
Sebagai contoh, terdapat $4$ barisan simpul $a$ berikut dengan panjang $2$ yang elemen-elemennya termasuk dalam $S$.
- Jika $a = (3, 3)$, maka skor dari barisan ini adalah $d(3, 3) \times d(3, 3) = 0 \times 0 = 0$.
- Jika $a = (3, 5)$, maka skor dari barisan ini adalah $d(3, 5) \times d(5, 3) = 2 \times 2 = 4$.
- Jika $a = (5, 3)$, maka skor dari barisan ini adalah $d(5, 3) \times d(3, 5) = 2 \times 2 = 4$.
- Jika $a = (5, 5)$, maka skor dari barisan ini adalah $d(5, 5) \times d(5, 5) = 0 \times 0 = 0$.
Judge merespons dengan $8$ untuk $q_2$, yang merupakan sisa pembagian $0 + 4 + 4 + 0$ dengan $2^{61} - 1$.
Dengan menghitung secara serupa untuk panjang barisan lainnya, kita memperoleh respons judge 0 8 0 32 0.
Daun-daun dari pohon ini adalah simpul $1, 2, 5$, dan mengeluarkan ! 11001 dengan benar menyelesaikan identifikasi daun-daun tersebut.