AT_abc455_e [ABC455E] Unbalanced ABC Substrings
题目描述
给定一个长度为 $N$ 的字符串 $S$,该字符串只包含字符 `A`、`B` 和 `C`。共有 $\frac{N(N+1)}{2}$ 个非空子串。请计算其中有多少个子串满足下述条件:
- 子串中 `A`、`B`、`C` 出现的次数互不相同。
对于取自 $S$ 不同位置的相同字符串,按不同子串分别计数。
什么是子串?一个字符串 $S$ 的**子串**是指可以通过从开头删除若干个字符、从结尾删除若干个字符(可以为零)得到的字符串。例如,`AB` 是 `ABC` 的子串,而 `AC` 不是 `ABC` 的子串。
输入格式
输入从标准输入中给出,格式如下:
> $N$ $S$
输出格式
输出满足条件的子串个数。
说明/提示
### 样例解释 1
从 $S$ 的开头删除 $0$ 个字符、末尾删除 $3$ 个字符,得到 `AAB`,满足条件。
从开头删除 $1$ 个字符、末尾删除 $2$ 个字符,得到 `ABB`,满足条件。
从开头删除 $2$ 个字符、末尾删除 $1$ 个字符,得到 `BBC`,满足条件。
从开头删除 $3$ 个字符、末尾删除 $0$ 个字符,得到 `BCC`,满足条件。
没有其他子串满足条件。
### 样例解释 2
没有子串满足条件。
### 数据范围
- $1 \leq N \leq 2 \times 10^5$
- $|S| = N$
- $N$ 为整数。
- $S$ 是一个仅由 `A`、`B`、`C` 组成的字符串。
由 ChatGPT 5 翻译