CF212C Cowboys
题目描述
一个非常紧张的时刻:$n$ 个牛仔们围成一个圈,并且每个牛仔都用左轮手枪指着他旁边的人!每个牛仔指着他顺时针或者逆时针方向上的相邻的人。人类的生命毫无价值,就像在任何真实的西部片中一样。
画面每秒钟都会变化!每秒钟,牛仔们分析局势,如果一对牛仔意识到他们互相瞄准,他们就会转身。在一秒钟内,所有这样的相邻牛仔对都会转身。所有的动作都是瞬间发生并同时进行的。
我们将用字符 "A" 来表示一个朝顺时针方向瞄准邻居的牛仔,用字符 "B" 来表示一个朝逆时针方向瞄准邻居的牛仔。然后,字母字符串 "A" 和 "B" 将表示牛仔们的圆圈,记录是从第一个牛仔开始顺时针方向的。
例如,牛仔环 "ABBBABBBA" 在一秒后会变成 "BABBBABBA";而牛仔环 "BABBA" 会变成 "ABABB"。

> 这幅图说明了"BABBA"怎么变成"ABABB"。
一秒过去了,现在牛仔们的位置由字符串 $s$ 描述。
你的任务是确定有多少可能的状态在一秒内导致 $s$ 状态。如果某个排列中一个牛仔指向顺时针,而在另一个排列中他指向逆时针,那么这两个排列就是不同的。
输入格式
输入数据包括一个字符串 $s$,它只含有 "A" 和 "B"。$s$ 的长度为 $3$ 到 $100$(包含 $3$ 和 $100$)。
输出格式
输出一秒前的可能排列数。
说明/提示
在第一个示例中,可能的初始状态是 "ABBBABBAB" 和 "ABBBABBBA"。
在第二个示例中,可能的初始状态是 "AABBB" 和 "BABBA"。