B4153 [厦门小学生 C++ 2022] 序列问题

题目背景

本试题为 2022 年厦门市小学生 C++ 语言**复赛**试题,数据为洛谷自造。 **初赛**为笔试。 考虑到评测机性能差异,本题时限相较原题下调 0.5s。

题目描述

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

输入格式

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

输出格式

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

说明/提示

### 样例解释 满足条件的子串有:$1$,$1$,$1$,$11$,$11$,$111$ ### 数据范围 - 对于 $20\%$ 的数据,$n\leq 3000$。 - 对于另外的 $10\%$ 的数据,$n\leq 10^7$,字符串全为 $1$。 - 对于另外的 $20\%$ 的数据,$n\leq 2\times 10^5$。 - 对于另外的 $20\%$ 的数据,$n\leq 2\times 10^6$。 - 对于另外的 $100\%$ 的数据,$n\leq 10^7$。