喜欢切数组的红
题号:NC283895
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红有一个长度为 n 的数组 \{a_1,a_2,\dots,a_n\} ,她打算将数组切两刀变成三个非空子数组,使得每一个子数组中至少存在一个正数,且每个子数组的和都相等。
\hspace{15pt} 看起来不是很难,所以小红想让你求解,一共有多少种不同的切分方案。

输入描述:

\hspace{15pt}第一行输入两个整数 n \left( 3 \leqq n \leqq 2 \times 10^5 \right) 代表数组中的元素数量。
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left( -10^9 \leqq a_i \leqq 10^9 \right) 代表数组元素。

输出描述:

\hspace{15pt}在一行上输出一个整数,代表切分方案数。
示例1

输入

复制
3
3 3 3

输出

复制
1
示例2

输入

复制
6
1 1 4 5 1 4

输出

复制
0
示例3

输入

复制
10
0 3 4 2 3 2 1 -1 3 4

输出

复制
2