平衡至关重要。在组织编程竞赛时,这一点尤为重要,我们希望今年 Potyczki Algorytmiczne 的评委们对此有深刻的认识。
如果一个字符串中出现的每个字母出现的次数都相同,我们就称该字符串是“平衡的”。例如,字符串 w、mama、potyczki 和 aabbcbcccbaa 是平衡的,而 oko、algorytmistrz 和 abcba 则不是。给定一个仅由字符 a、b 和 c 组成的长字符串,请计算它有多少个非空子串(即连续的字符片段)是平衡的。
注意:出现在不同位置的相同字符串被视为不同的子串,需要分别计数。例如,在字符串 oko 中,平衡的子串有 o、k、o。
输入格式
输入的第一行包含一个非空字符串,长度不超过 $300\,000$,仅由字符 a、b 和 c 组成。
输出格式
输出一个整数,表示输入字符串中平衡子串的数量。
样例
输入格式 1
aabbabcccba
输出格式 1
28
说明 1
平衡的子串包括:a、aa、aabb、aabbab、aabbabccc、ab、abba、abc、b、ba、bb、bc、c、cb、cba、cc、ccc。请注意,其中一些子串出现了多次。
子任务
- 在某些测试组中,输入字符串的长度不超过 $100$。
- 在其他测试组中,输入字符串的长度不超过 $3000$。
在上述两种情况下,至少存在一个对应的测试组。