AT_arc110_e [ARC110E] Shorten ABC
Description
[problemUrl]: https://atcoder.jp/contests/arc110/tasks/arc110_e
`A`, `B`, `C` からなる長さ $ N $ の文字列 $ S $ があります。
あなたは $ S $ に対して、以下の操作を $ 0 $ 回以上行うことができます。
- $ S_i\ \neq\ S_{i\ +\ 1} $ である $ i\ ~\ (1\ \leq\ i\ \leq\ |S|\ -\ 1) $ を選ぶ。$ S_i $ を $ S_i,\ S_{i\ +\ 1} $ のいずれとも(`A`, `B`, `C` の中で)異なる文字で置き換え、$ S_{i\ +\ 1} $ を $ S $ から削除する
操作を $ 0 $ 回以上行ったあとの $ S $ として、ありえるものの種類数を $ 10^9+7 $ で割った余りを出力してください。
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 10^6 $
- $ S $ は `A`, `B`, `C` からなる長さ $ N $ の文字列
### Sample Explanation 1
たとえば以下のように操作すると、文字列 $ S $ として `ACB` が得られます。 - まず $ i $ として $ 2 $ を選ぶ。$ S_2 $ を `C` で置き換え、$ S_3 $ を削除するので $ S $ は `ACAC` になる - 次に $ i $ として $ 3 $ を選ぶ。$ S_3 $ を `B` で置き換え、$ S_4 $ を削除するので $ S $ は `ACB` になる