atcoder#AGC027E. [AGC027E] ABBreviate

[AGC027E] ABBreviate

配点 : 13001300

問題文

ab のみからなる文字列 ss があります。 すぬけ君は、次の 22 種類の操作を任意の順序で任意の回数だけ行えます。

  • ss 中の部分文字列 aa を一箇所選び、b へ置き換える。
  • ss 中の部分文字列 bb を一箇所選び、a へ置き換える。

00 回以上の操作の後、ss は何通りありうるでしょうか? 109+710^9 + 7 で割った余りを求めてください。

制約

  • 1s1051 \leq |s| \leq 10^5
  • ssab のみからなる。

入力

入力は以下の形式で標準入力から与えられる。

ss

出力

操作後の ss は何通りありうるか? 109+710^9 + 7 で割った余りを出力せよ。

aaaa
6

次の 66 通りです。

  • aaaa
  • aab
  • aba
  • baa
  • bb
  • a
aabb
5

次の 55 通りです。

  • aabb
  • aaa
  • bbb
  • ab
  • ba
ababababa
1

すぬけ君は一度も操作を行えません。

babbabaaba
35