AT_wtf22_day2_a Hat Puzzle
Description
[problemUrl]: https://atcoder.jp/contests/wtf22-day2-open/tasks/wtf22_day2_a
$ N $ 人のプレイヤーとゲームマスターのあなたが**帽子の色当てゲーム**をプレイします. プレイヤーは縦一列に並んでおり,前から順に $ 1 $ から $ N $ までの番号がつけられています.
各プレイヤーは赤または青の帽子をかぶっています. この情報は文字列 $ S $ によって表され,$ S $ の $ i $ 文字目が `R` ならばプレイヤー $ i $ は赤い帽子を,`B` ならば青い帽子をかぶっています. あなたは文字列 $ S $ を知っていますが,プレイヤーは知りません. 各プレイヤーは,自分の前にいるプレイヤー(つまりより番号の小さいプレイヤー)の帽子の色だけを見ることができます. 特に,自分の帽子の色は見えません.
ゲームは次のように進行します.
まずあなたが,赤い帽子をかぶっているプレイヤーの人数と,青い帽子をかぶっているプレイヤーの人数を数え,それを全プレイヤーに伝えます. その後,以下の一連の流れ(**ラウンド**と呼ぶ)を $ 10^{100} $ 回繰り返します.
- あなたが各プレイヤーに「自分の帽子の色が分かりますか?」と質問する. それに対しプレイヤーは,他のプレイヤーに聞こえないように正直に `Yes` または `No` で返答する.
- すべてのプレイヤーへ質問し終えたら,`Yes` と答えたプレイヤーを全員発表する. この発表は全プレイヤーが聞くことができる. ただし,発表するのはあくまでプレイヤーの番号であり,その帽子の色は伝えないことに注意せよ.
すべてのプレイヤーはとても賢く,また他のプレイヤーも同様に賢いということを知っています. 彼らは自分の帽子の色が確定した最初のラウンドからあなたの質問に `Yes` と返答します. また,他のプレイヤーがそのような戦術をとっていることを知った上で,自分の帽子の色を推理します.
各プレイヤーについて,すべてのラウンドが終了した時点で自分の帽子の色が分かっているか否かを求めてください.
$ 1 $ つの入力ファイルにつき,$ T $ 個のテストケースに答えて下さい.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ T $ $ case_1 $ $ case_2 $ $ \vdots $ $ case_T $
各テストケース $ case_i $ は以下の形式である.
> $ N $ $ S $
Output Format
各ケースについて,答えを長さ $ N $ の文字列として出力せよ. 出力する文字列の $ i $ 文字目は,すべてのラウンドが終了した時点でプレイヤー $ i $ が自分の帽子の色を知っているなら `1`, そうでないなら `0` とせよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ T\ \leq\ 100 $
- $ 1\ \leq\ N\ \leq\ 100 $
- $ S $ は `R` と `B` からなる長さ $ N $ の文字列.
- 入力される値はすべて整数.
### Sample Explanation 1
$ 1 $ つめのケースでは,ゲームは以下のように進行します. - まずあなたが「赤い帽子をかぶっているプレイヤーは $ 2 $ 人,青い帽子を被っているプレイヤーは $ 1 $ 人です」と全プレイヤーに伝える. - ラウンド $ 1 $: - プレイヤー $ 1 $: あなたの質問に `No` と返答する. - プレイヤー $ 2 $: あなたの質問に `No` と返答する. - プレイヤー $ 3 $: 前にいるプレイヤーの帽子の色が赤と青なので,自分が赤い帽子をかぶっているとわかる. あなたの質問に `Yes` と返答する. - あなたが「`Yes` と答えたのはプレイヤー $ 3 $ です」と発表する. - ラウンド $ 2 $: - プレイヤー $ 1 $: 自分の帽子の色が青だったと仮定する.すると,ラウンド $ 1 $ でプレイヤー $ 2 $ は自身の帽子の色が赤だと気づいたはずである.しかし実際にはプレイヤー $ 2 $ は `No` と返答している. よって自分の帽子の色は赤だとわかる. あなたの質問に `Yes` と返答する. - プレイヤー $ 2 $: あなたの質問に `No` と返答する. - プレイヤー $ 3 $: あなたの質問に `Yes` と返答する. - あなたが「`Yes` と答えたのはプレイヤー $ 1,3 $ です」と発表する. - ラウンド $ 3 $: - プレイヤー $ 1 $: あなたの質問に `Yes` と返答する. - プレイヤー $ 2 $: あなたの質問に `No` と返答する. - プレイヤー $ 3 $: あなたの質問に `Yes` と返答する. - あなたが「`Yes` と答えたのはプレイヤー $ 1,3 $ です」と発表する. - $ \vdots $ すべてのラウンドが終了した段階で,プレイヤー $ 1,3 $ は自分の帽子の色を知っています. しかしプレイヤー $ 2 $ はわからないままです. より詳しく言えば,プレイヤー $ 2 $ の持つ情報だけでは $ S= $`RRB` である可能性と $ S= $`RBR` である可能性がどちらも否定できないため,自分の帽子の色を確定させることができません. よって答えとして文字列 `101` を出力します.