AT_arc177_b [ARC177B] Puzzle of Lamps
Description
[problemUrl]: https://atcoder.jp/contests/arc177/tasks/arc177_b
AtCoder さんは、左から右へ一列に並べられた $ N $ 個の豆電球と、$ 2 $ 種類のスイッチ A, B で構成された装置を作りました。各豆電球は、`0` (OFF) と `1` (ON) の $ 2 $ 種類の状態をとります。各スイッチを押すと、以下のことが起こります。
- スイッチ A を押すと、`0` の状態の豆電球のうち一番左のものが `1` になる。
- スイッチ B を押すと、`1` の状態の豆電球のうち一番左のものが `0` になる。
なお、該当する豆電球が存在しない場合はスイッチを押せません。
最初、すべての豆電球は `0` の状態になっています。AtCoder さんは、左の豆電球から順に状態が $ S_1,\ S_2,\ \dots,\ S_N $ になっている状態にしたいです。そのためにスイッチをどの順番で何回押せばいいのかを答えてください。ここで、必ずしもスイッチを押す回数を最小化する必要はありませんが、操作を現実的な時間で終わらせるために、スイッチを押す回数は $ 10^6 $ 回以下にしてください。なお、この問題の制約下では、答えが存在することが証明できます。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ S_1\ S_2\ \dots\ S_N $
入力の $ 2 $ 行目は長さ $ N $ の文字列として与えられることに注意してください。
Output Format
答えたい操作方法が、スイッチを $ m $ 回 $ (1\ \leq\ m\ \leq\ 10^6) $、スイッチ $ t_1,\ t_2,\ \dots,\ t_m $(すべて `A` または `B`)の順番で押すものである場合、以下の形式で出力してください。
> $ m $ $ t_1\ t_2\ \dots\ t_m $
出力の $ 2 $ 行目は長さ $ m $ の文字列として出力してください。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 30 $
- $ S_1,\ S_2,\ \dots,\ S_N $ は `0` または `1`
- $ S_1,\ S_2,\ \dots,\ S_N $ がすべて `0` であることはない
- $ N $ は整数
### Sample Explanation 1
この出力例で答えているのは、スイッチ A, A, A, B の順に押す操作方法です。以下の図のように、豆電球を目的の状態にすることができます。 !\[ \](https://img.atcoder.jp/arc177/76af43b23a9e1158288d5f3162174c42.png) 別の方法として、スイッチ A, A, B, A, A, B の順に押しても、豆電球を目的の状態にすることができます。これに対応する以下の出力をした場合でも正解になります。 ``` 6 AABAAB ```