Start: 2025-08-28 08:00:00

暑期训练赛04

End: 2025-08-28 11:30:00
Now  2025-09-13 19:08:43  类型: IOI  状态: Ended 

P5. 子串权值和
Description

小Z定义一个字符串的权值为:该字符串包含的"abba"子序列的数量。

给定一个字符串,试求它的所有连续子串的权值和。答案请对(10^9 + 7)取模。

子串定义:字符串删除一个前缀和一个后缀(也可以不删)得到的字符串。例如,"arcaea"的子串有"arc"、"ca"等。

子序列定义:字符串删除若干个字符(也可以不删)得到的字符串。例如,"arcaea"的子序列有"aca"等。


Input

输入一个仅包含小写字母'ab'的字符串。

Output

所有连续子串的权值和。答案对(10^9 + 7)取模。

Examples

Input

abbaa

Output

3
Hint

"abba"的权值为 1,"abbaa"的权值为 2。权值之和为 1 + 2 = 3。


- 对于10%的数据,保证字符串长度不超过20。

- 对于20%的数据,保证字符串长度不超过200。

- 对于30%的数据,保证字符串长度不超过2000。

- 对于50%的数据,保证字符串长度不超过(10^5)。

- 对于80%的数据,保证字符串长度不超过(10^6)。

- 对于100%的数据,保证字符串长度不超过(5\times 10^6)。


Submit

题目参数
Time Limit 1 second
Memory Limit 256 MB
Submit