#arc055d. [arc055_d]隠された等差数列

[arc055_d]隠された等差数列

问题文

AtCoDeer是一只喜欢高贵鲷鱼的鹿。事实上,可以用非空字符串A,B,CA,B,C表示连结字符串ABCACABCACAA="た", BB="か", CC="い")。因此,AtCoDeer决定对字符串SS求解有多少种这样的分割方式。

约束条件

  • 5S2000005≦|S|≦200000
  • SS 只包含小写英文字母。

输入

输入从标准输入中获取,具有以下格式。

SS

部分点

本问题设有部分点。

  • 如果能够正确解决满足S2000|S|≦2000的数据集,则可得到20分。

输出

输出有多少种非空字符串的组合A,B,C{A,B,C}使得S=ABCACS=ABCAC

示例输入1


takaitai

示例输出1


2

存在两种情况:A="ta",B="ka",C="i"A="ta",B="ka",C="i"A="t",B="ak",C="ai"A="t",B="ak",C="ai"

示例输入2


aaaaaaaaaa

示例输出2


6

以下为6种情况:

  • A="aaa",B="aa",C="a"A="aaa",B="aa",C="a"
  • A="aa",B="aa",C="aa"A="aa",B="aa",C="aa"
  • A="aa",B="aaaa",C="a"A="aa",B="aaaa",C="a"
  • A="a",B="aa",C="aaa"A="a",B="aa",C="aaa"
  • A="a",B="aaaa",C="aa"A="a",B="aaaa",C="aa"
  • A="a",B="aaaaaa",C="a"A="a",B="aaaaaa",C="a"

示例输入3


abcabc

示例输出3


0

请注意,A,B,CA,B,C不能是空字符串。