atcoder#ARC131F. [ARC131F] ARC Stamp
[ARC131F] ARC Stamp
配点 : 点
問題文
A, R, C からなる文字列 から始めて、「連続する三文字を選んで ARC に上書きする」操作を 回以下行ったところ、文字列 が得られました。
さて、最初の文字列 として何通りがあり得るでしょうか?これを で割った余りを求めてください。
制約
- は
A,R,Cからなる文字列
入力
入力は以下の形式で標準入力から与えられます。
出力
答えを出力してください。
ARCCARC
1
53
例えば、最初の文字列 が次のようなとき、 回以下の操作で文字列 = ARCCARC を得ることができます。
- =
ARCCARCのとき:操作を行わないでも文字列ARCCARCが得られる. - =
CRACARCのとき: の 文字目を選んでARCに上書きすると、文字列ARCCARCが得られる。 - =
ARCCCCCのとき: の 文字目を選んでARCに上書きすると、文字列ARCCARCが得られる。
上に挙げたもの以外にもたくさんあり、 としてあり得るものは全部で 通りです。
ARARCRCA
5
2187
最初の文字列 が AAAAAAAA のとき、例えば次のような 回以下の操作で文字列 = ARARCRCA を得ることができます。
- ステップ :まず、 文字目を選んで
ARCに上書きすると、文字列AAARCAAAが得られる。 - ステップ :次に、 文字目を選んで
ARCに上書きすると、文字列AAARARCAが得られる。 - ステップ :次に、 文字目を選んで
ARCに上書きすると、文字列ARCRARCAが得られる。 - ステップ :最後、 文字目を選んで
ARCに上書きすると、文字列ARARCRCAが得られる。
それ以外にも としてあり得るものはたくさんあり、全部で 通りです。
AARCRRARCC
0
1
回の操作で文字列 = AARCRRARCC を得られるのは、最初の時点で のとき、すなわち = AARCRRARCC の 通りしかありません。
AAAAARRRRRCCCCC
131
1
この入力例では、 としてあり得るものは AAAAARRRRRCCCCC の 通りだけです。
CAARCACRAAARARARCRCRARCARARCRRARC
9
797833187
最初の文字列 としてあり得るものは 通りあるので、これを で割った余りである を出力してください。