2742: 「一本通 2.1 练习 6」Antisymmetry

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:15 Solved:6

Description

对于一个 $0/1$ 字符串,如果将这个字符串 $0$ 和 $1$ 取反后,再将整个串反过来和原串一样,就称作「反对称」字符串。比如 $00001111$ 和 $01010101$ 就是反对称的,而 $1001$ 就不是。

现在给出一个长度为 $n$ 的 $0/1$ 字符串,求它有多少个子串是反对称的,注意这里相同的子串出现在不同的位置会被重复计算。

Input

第一行一个正整数 $n$。

第二行一个长度为 $n$ 的 $0/1$ 字符串。

Output

一行一个整数,表示原串的反对称子串个数。

Sample Input Copy

8
11001011

Sample Output Copy

7

HINT

对于 $100\%$ 的数据,$1 \leq n \leq 5 \times 10^5$。

Translated by vincent163

加入题单

算法标签: