#ATarc137b. [ARC137B] Count 1's

[ARC137B] Count 1's

题目描述

给定一个由 0011 组成、长度为 NN 的整数序列 A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N)

你需要恰好进行 11 次如下操作:

  • 选择 AA 的一个连续子序列,并将其中的每个元素进行翻转。也就是说,如果是 00 就变成 11,如果是 11 就变成 00。这里允许选择的子序列为空,此时 AA 的元素不会发生任何变化。

你的得分为 AA11 的个数。请你求出所有可能的得分有多少种不同的取值。

输入格式

输入以如下格式从标准输入读入:

N A1 A2  ANN\ A_1\ A_2\ \cdots\ A_N

输出格式

请输出答案。

样例 1

输入

4
0 1 1 0

输出

4

样例 2

输入

5
0 0 0 0 0

输出

6

样例 3

输入

6
0 1 0 1 0 1

输出

3

说明/提示

限制条件

  • 1N3×1051\leq N\leq 3\times 10^5
  • 0Ai10\leq A_i\leq 1
  • 输入的所有值均为整数

样例解释 1

可能的得分为 0,1,2,30,1,2,3,共 44 种。例如,将 AA 的第 22 个到第 44 个元素翻转后,A=(0,0,0,1)A=(0,0,0,1),此时得分为 11

由 ChatGPT 4.1 翻译