atcoder#ABC214F. [ABC214F] Substrings
[ABC214F] Substrings
配点 : 点
問題文
文字列 が与えられます。高橋君はこの文字列から以下の手順にしたがって新しい文字列 を作ります。
- まず、 の文字のうちの一つ以上に印をつける。ただし、印をつけた文字どうしが隣り合ってはならない。
- 次に、印がついていない文字を全て削除する。
- 最後に、残った文字列を とする。ただし、この時に文字を並び替えてはならない。
としてありうる文字列は何種類ありますか? で割ったあまりを求めてください。
制約
- は英小文字のみからなる長さ 以上 以下の文字列
入力
入力は以下の形式で標準入力から与えられる。
出力
としてありうる文字列の種類数を で割ったあまりを出力せよ。
abc
4
としてありうるものは a
、 b
、 c
、 ac
の つです。
の 文字目のみに印をつけたとき は a
、
の 文字目のみに印をつけたとき は b
、
の 文字目のみに印をつけたとき は c
、
の 文字目と 文字目のみに印をつけたとき は ac
、
となります。例えば 文字目と 文字目の両方に印をつけることはできないことに注意してください。
aa
1
としてありうるものは a
のみです。
印をつけた位置が異なっていても が同じ文字列となる可能性があることに注意してください。
acba
6
としてありうるものは a
、 b
、 c
、 aa
、 ab
、 ca
の つです。
chokudai
54