AT_agc055_a [AGC055A] ABC Identity
Description
[problemUrl]: https://atcoder.jp/contests/agc055/tasks/agc055_a
長さ $ 3N $ の文字列 $ S $ が与えられます。$ S $ は `A`, `B`, `C` をそれぞれちょうど $ N $ 個ずつ含みます。
文字 `A`, `B`, `C` からなる文字列 $ T $ が次の条件を満たすとき、$ T $ を **良い** 文字列であると呼びます。
- $ T $ の長さは $ 3 $ で割り切れる。この長さを $ 3K $ とする。
- $ T_1\ =\ T_2\ =\ \ldots\ =\ T_K $
- $ T_{K+1}\ =\ T_{K+2}\ =\ \ldots\ =\ T_{2K} $
- $ T_{2K+1}\ =\ T_{2K+2}\ =\ \ldots\ =\ T_{3K} $
- 文字 $ T_1,\ T_{K+1},\ T_{2K+1} $ は互いに異なる。
良い文字列の例を挙げると、`ABC`, `BBAACC`, `AAACCCBBB` です。
$ S $ を **$ 6 $ 個以下**の(連続とは限らない)部分列に分解する方法であって、各部分列が良い文字列であるような方法を一つ見つけてください。
これは、この問題の制約下で必ず可能であることが証明できます。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S $
Output Format
`1` から `6` までの数字からなる長さ $ 3N $ の文字列を出力せよ。文字列に含まれる各 $ 1\le\ i\ \le\ 6 $ について、$ i $ を出力した位置に対応する $ S $ の文字を並べると良い文字列が得られるようにすること。 なお、答えが複数通り存在する場合、そのどれを出力しても正解とみなされる。
Explanation/Hint
### 制約
- $ 1\ \le\ N\ \le\ 2\cdot\ 10^5 $
- 文字列 $ S $ は、文字 `A`, `B`, `C` を $ N $ 個ずつ含む。
### Sample Explanation 1
$ S $ が部分列 `ABC`, `CBA` に分割されており、これらはそれぞれ良い文字列です。
### Sample Explanation 2
$ 1 $ の位置に対応する部分列は `AABBCC`、$ 2 $ の位置に対応する部分列は `CAB`、$ 4 $ の位置に対応する部分列は `ACB` であり、これらは全て良い文字列です。