#ACM0055. 虾仁的假字符串

虾仁的假字符串

题目描述

虾仁在当锦衣卫的时候破获了许多离奇案件,当下有个非常棘手的密室。

他进入密室后发现了许多暗器朝他飞来,他猛的回头看去只见门已经关上了,上面有一个谜题需要解答了才能开门,只见上面写着:

  • 现有 0101 串于此,则于所有子串中 00 之数同于 11 之数为几何?

虾仁现在只有 11 秒的时间思考这个问题,请你帮帮他度过难关!

简单题意:给定一个长度为 nn 的字符串 SS,并且 Si{0,1},i=1,2,,n\forall S_i\in\{0,1\},i=1,2,\cdots,n,请问所有子串^\dagger00 的个数和 11 的个数相同的子串的数量是多少?

^\dagger 当且仅当删去 SS 的某个可以为空的前缀和某个可以为空的后缀之后,可以得到的字符串。

输入格式

第一行两个正整数 n (1n106)n\ (1\le n\le 10^6),表示字符串的长度。

第二行输入一个长度为 nn 的字符串 SS

数据保证 Si{0,1},i=1,2,,n\forall S_i\in\{0,1\},i=1,2,\cdots,n

输出格式

输出一个整数,表示答案。

样例输入

5
11010

样例输出

4

样例解释

一共有 44 个子串满足条件,下标从 11 开始为:[2,3],[3,4],[4,5],[2,5][2,3],[3,4],[4,5],[2,5]