AT_abc441_e [ABC441E] A > B substring
题目描述
给定一个由 `A`、`B`、`C` 三种字符组成的长度为 $ N $ 的字符串 $ S $。
$ S $ 的非空连续子串共有 $ \dfrac{N(N+1)}2 $ 个,请问其中包含的 `A` 数量多于 `B` 数量的子串有多少个?
请注意,即使两个子串内容相同,只要它们在 $ S $ 中取出的位置不同,就视为不同的子串。
子串 是指从 $ S $ 的开头删除 $ 0 $ 个或更多字符,以及从末尾删除 $ 0 $ 个或更多字符所得到的字符串。
例如,`AB` 是 `ABC` 的子串,但 `AC` 不是 `ABC` 的子串。
输入格式
输入通过标准输入给出,格式如下:
> $ N $ $ S $
输出格式
输出 $ S $ 的连续子串中,A 的数量多于 B 的数量的子串个数。
说明/提示
### 样例解释 1
满足条件的子串共有 $ 8 $ 个:
`A`: $ S $ 的第 $ 1 $ 个字符到第 $ 1 $ 个字符
`AC`: $ S $ 的第 $ 1 $ 个字符到第 $ 2 $ 个字符
`CA`: $ S $ 的第 $ 5 $ 个字符到第 $ 6 $ 个字符
`CABCA`: $ S $ 的第 $ 5 $ 个字符到第 $ 9 $ 个字符
`A`: $ S $ 的第 $ 6 $ 个字符到第 $ 6 $ 个字符
`ABCA`: $ S $ 的第 $ 6 $ 个字符到第 $ 9 $ 个字符
`CA`: $ S $ 的第 $ 8 $ 个字符到第 $ 9 $ 个字符
`A`: $ S $ 的第 $ 9 $ 个字符到第 $ 9 $ 个字符
除了以上这些,没有其他子串满足条件,因此输出 $8$。
请注意,像 `A` 或 `CA` 可以从多个位置取出,但只要取出的位置不同,就视为不同的子串并分别计数。
### 样例解释 2
也有可能不存在满足条件的子串。
### 数据范围
- $ 1\le N\le5\times10 ^ 5 $。
- $ S $ 是一个由 `A`、`B`、`C` 组成的长度为 $ N $ 的字符串。
- $ N $ 是整数。