呢題係一道交互題。
KUPC 君寫咗一個解決以下問題嘅程式。
俾你一棵有 $N$ 個頂點嘅樹 $T = (V, E)$。 對於 $T$ 入面一個長度為 $k$ 嘅頂點序列 $\{a_1, \dots, a_k\}$,定義佢嘅分數如下。 - 設 $d(u, v)$ 係樹 $T$ 入面頂點 $u$ 同 $v$ 之間路徑上面嘅邊數。咁分數就係 $\prod_{i=1}^k d(a_i, a_{(i \bmod k)+1})$。
俾出 $V$ 嘅一個子集 $S$。對於每個 $1 \le k \le N$,求出以下嘅值 $q_k$。 - 所有元素都屬於 $S$ 而且長度為 $k$ 嘅頂點序列 $\{a_1, \dots, a_k\}$ 嘅分數總和,對 $2^{61} - 1$ 取模。
KUPC 君預先秘密保存咗樹 $T$ 嘅資訊,並且持續將 $T$ 作為輸入俾個程式用。
你想用上面嘅程式去還原樹入面所有葉節點嘅資訊。設樹嘅頂點數為 $N$,你最多可以提出以下問題 $N$ 次。
- 揀 $V$ 嘅一個子集 $S$,並詢問個程式嘅輸出。
假設 KUPC 君嘅程式係正確嘅,請根據透過提問獲得嘅資訊,搵出樹 $T$ 入面包含嘅所有葉節點。
評測機唔係自適應(non-adaptive)嘅,即係樹 $T$ 喺交互開始之前已經固定咗。
交互格式
首先,由標準輸入俾出 $N$。($2 \le N \le 50$)
對於每次提問,請按以下格式向標準輸出打印:
? s1s2...sN
呢度,$s_1s_2\cdots s_N$ 係一個長度為 $N$ 嘅字串,代表子集 $S$,其中如果 $i \in S$ 則 $s_i = 1$,如果 $i \notin S$ 則 $s_i = 0$。
作為回應,標準輸入會俾出以下內容:
q1 q2 ... qN
當你確定晒所有葉節點之後,請按以下格式輸出你嘅答案:
! t1t2...tN
呢度,$t_1t_2\cdots t_N$ 係一個長度為 $N$ 嘅字串,其中如果 $i$ 係葉節點則 $t_i = 1$,如果唔係葉節點則 $t_i = 0$。
輸出完呢個答案之後,請立即終止你嘅程式。
每次輸出任何內容之後,請喺最後加上換行符並刷新(flush)標準輸出。
範例
範例輸入 1
5 0 8 0 32 0 0 44 108 968 3960 0 0 0 0 0 0 76 348 3336 22200
範例輸出 1
? 00101 ? 11001 ? 10000 ? 11111 ! 11001
說明
對於第一個範例,評測機秘密保存嘅樹嘅邊集係 $(1, 3), (2, 3), (3, 4), (4, 5)$。
喺第一次提問入面,$S = \{3, 5\}$。
注意 $d(3, 3) = 0, d(3, 5) = d(5, 3) = 2, d(5, 5) = 0$。
例如,有以下 $4$ 個元素屬於 $S$ 而且長度為 $2$ 嘅頂點序列 $a$。
- 如果 $a = (3, 3)$,咁呢個序列嘅分數係 $d(3, 3) \times d(3, 3) = 0 \times 0 = 0$。
- 如果 $a = (3, 5)$,咁呢個序列嘅分數係 $d(3, 5) \times d(5, 3) = 2 \times 2 = 4$。
- 如果 $a = (5, 3)$,咁呢個序列嘅分數係 $d(5, 3) \times d(3, 5) = 2 \times 2 = 4$。
- 如果 $a = (5, 5)$,咁呢個序列嘅分數係 $d(5, 5) \times d(5, 5) = 0 \times 0 = 0$。
評測機對 $q_2$ 嘅回應係 $8$,即係 $0 + 4 + 4 + 0$ 除以 $2^{61} - 1$ 嘅餘數。
對其他序列長度進行類似計算,我哋就得到評測機嘅回應 0 8 0 32 0。
呢棵樹嘅葉節點係頂點 $1, 2, 5$,輸出 ! 11001 就可以正確完成對葉節點嘅識別。