#2120. C++-2022年厦门市小学生计算机C++语言竞赛(复赛)-操作题04(序列问题(sequence))

C++-2022年厦门市小学生计算机C++语言竞赛(复赛)-操作题04(序列问题(sequence))

Background

Description

高老师是一位经验丰富的信息学竞赛指导教师,善于开发学生的创造性思维。周末课上,他给学生留下一道关于01串的思考题(所谓01串就是由字符‘0’和‘1’组成的字符串):给定一个长度为n的01串,他想知道有多少个子串,满足其中1的个数比0的个数多。现在高老师请会编程的你来帮忙计算答案。

对于20%的数据,n≤3000。

对于另外的10%的数据,n≤10​^7^​,字符串全为1。

对于另外的20%的数据,n≤2×10​^5^​。

对于另外的20%的数据,n≤2×10​^6^​。

对于另外的100%的数据,n≤10​^7^​。

Format

Input

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

第一行一个整数,表示字符串的长度。

第二行一个字符串,表示01串。

Output

输出到文件sequence.out中。

输出一行,包括一个整数,表示满足条件的子串的个数。

Samples

3
111
6
5
11110
13
6
101010
6

Limitation

1s, 1024KiB for each test case.