I. [USACO12OPEN] 平衡子数组

    远端评测题 1000ms 125MiB

[USACO12OPEN] 平衡子数组

题目描述

我们称一个数组 aa平衡 的,当且仅当:

  • 1、可以将 aa 划分成 22 个非空的 子数组 xxyy
  • 2、子数组 xxyy 的和相等

比如:

  • a=[1,3,2]a = [1, 3, 2] 是平衡的,因为 aa 可以划分成 x=[1,2]x = [1, 2]y=[3]y = [3],而 xxyy 的和都是 33
  • a=[1,2,4]a = [1, 2, 4] 不是平衡的

现在给你一个长度为 nn 的数组 aa,请问 aa 有多少个子数组是平衡的呢?

输入格式

第一行一个整数 nn,表示数组 aa 的大小。

22n+1n+1 行,每行一个数 aia_i,表示数组 aa 里的数。

输出格式

输出一个数表示平衡的子数组个数。

4 
1 
2 
3 
4 
3 
3
1
1
1
3

数据范围与提示

【样例 1 解释】

共存在 33 个不同的平衡子数组:

  • [1,2,3][1,2,3] 可以划分为 [1,2][1,2][3][3]
  • [1,3,4][1,3,4] 可以划分为 [1,3][1,3][4][4]
  • [1,2,3,4][1,2,3,4] 可以划分为 [1,4][1,4][2,3][2,3]

【样例 2 解释】

共存在 33 个不同的平衡子数组(标记橙色部分):

  • $[{\color{orange}{\bf 1}}, {\color{orange}{\bf 1}}, 1]$
  • $[{\color{orange}{\bf 1}}, 1, {\color{orange}{\bf 1}}]$
  • $[1, {\color{orange}{\bf 1}}, {\color{orange}{\bf 1}}]$
  • 注意:两个子数组不同,当且仅当存在至少一个下标不同

【数据范围】

  • 1n201\le n\le 201ai1081\le a_i\le 10^8