#agc023a. [agc023_a]Zero-Sum Ranges

[agc023_a]Zero-Sum Ranges

题目描述

给定一个整数序列 AA,长度为 NN

找出序列 AA 中非空的连续子序列,使得它们的和为 00。注意我们要计算的是取出子序列的方式的数量。也就是说,即使有些子序列的内容相同,如果它们从不同的位置取出,则分别计算。

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 109Ai109-10^9 \leq A_i \leq 10^9
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN A1A_1 A2A_2 ...... ANA_N

输出

找出序列 AA 中非空的连续子序列的和为 00 的数量。


样例输入 1

6
1 3 -4 2 2 -2

样例输出 1

3

存在 33 个连续子序列的和为 00,它们分别是:(1,3,4)(1,3,-4), (4,2,2)(-4,2,2)(2,2)(2,-2)


样例输入 2

7
1 -1 1 -1 1 -1 1

样例输出 2

12

在这个例子中,一些具有相同内容但从不同位置取出的子序列会分别计数。例如,(1,1)(1,-1) 出现了 33 次被计数。


样例输入 3

5
1 -2 3 -4 5

样例输出 3

0

不存在连续子序列的和为 00