#L3995. 「CSP-S 2023」消消乐

「CSP-S 2023」消消乐

题目描述

LL 现在在玩一个低配版本的消消乐,该版本的游戏是一维的,一次也只能消除两个相邻的元素。

现在,他有一个长度为 nn 且仅由小写字母构成的字符串。我们称一个字符串是可消除的,当且仅当可以对这个字符串进行若干次操作,使之成为一个空字符串。

其中每次操作可以从字符串中删除两个相邻的相同字符,操作后剩余字符串会拼接在一起。

LL 想知道,这个字符串的所有非空连续子串中,有多少个是可消除的。


输入格式

从文件 game.in 中读入数据。

输入的第一行包含一个正整数 nn,表示字符串的长度。

输入的第二行包含一个长度为 nn 且仅由小写字母构成的字符串,表示题目中询问的字符串。


输出格式

输出到文件 game.out 中。

输出一行包含一个整数,表示题目询问的答案。


样例 1

输入

8
accabccb

输出

5

一共有 55 个可消除的连续子串,分别是 ccaccaccbccbaccabccb


样例 2

见附件中的 game2.ingame2.ans


样例 3

见附件中的 game3.ingame3.ans


样例 4

见附件中的 game4.ingame4.ans


数据范围与提示

对于所有测试数据有:1n2×1061 \le n \le 2 \times 10^6,且询问的字符串仅由小写字母构成。

测试点 nn \leq 特殊性质
1~5 1010
6~7 800800
8~10 80008000
11~12 2×1052\times 10^5 A
13~14 B
15~17
18~20 2×1062\times 10^6
  • 特殊性质 A:字符串中的每个字符独立等概率地从字符集中选择。
  • 特殊性质 B:字符串仅由 ab 构成。