CF466C.Number of Ways

传统题 时间 2000 ms 内存 256 MiB 8 尝试 13 已通过 8 标签

Number of Ways

题目描述

给定一个长度为 nn 的整数数组 a1,a2,…,ana_1,a_2,\ldots,a_n。请计算把整个数组分成三个非空连续部分,并使三个部分元素和都相等的方案数。

更形式化地,统计满足 2≤i≤j≤n−12\le i\le j\le n-1 的下标对 (i,j)(i,j) 的数量,使得

$$\sum_{p=1}^{i-1}a_p =\sum_{p=i}^{j}a_p =\sum_{p=j+1}^{n}a_p.$$

三个部分分别为 [1,i−1][1,i-1]、[i,j][i,j] 和 [j+1,n][j+1,n]。

输入格式

第一行一个整数 nn(1≤n≤5⋅1051\le n\le5\cdot10^5)。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n(∣ai∣≤109|a_i|\le10^9)。

输出格式

输出一个整数,表示将数组分为三个元素和相等的连续部分的方案数。

样例

样例 1

输入:

5
1 2 3 0 3

输出:

2

样例 2

输入:

4
0 1 -1 0

输出:

1

样例 3

输入:

2
4 1

输出:

0

在线编程 IDE

建议全屏模式获得最佳体验