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 $ 是整数。