完美数组
题目描述
Smart
喜欢使用数组。今天,他需要你的帮助来完成一项艰巨的任务。
如果对于数组\(A\)的每个非空子数组(子数组就是从数组\(A\)中选出连续若干个元素组成的数组),如果该子数组的所有元素之和不等于零,则将其称为"\(\text{Perfect Array}\)"。 例如,数组{\(−1, 2, −3\)}就是"\(\text{Perfect Array}\)",因为其所有子数组{\(−1\)},{\(− 1, 2\)},{\(− 1, 2, -3\)},{\(2\)},{\(2, -3\)},{\(-3\)}的元素和均为非零。 但是,数组{\(−1, 2, −1, −3\)}就不是"\(\text{Perfect Array}\)",因为它的子数组{\(−1, 2, −1\)}的元素和等于 \(0\)。
你的任务是对给定数组\(A\),帮助Smart计算\(A\)的非空子数组是"\(\text{Perfect Array}\)"的数量。
格式
输入格式
第一行包含一个整数\(n\),表示数组\(A\)的长度。
第二行包含\(n\)个整数\(A_1, A_2, \cdots, A_n\)对于数组\(A\)的元素。
输出格式
输出仅一行包含一个整数,表示数组\(A\)的非空子数组是"\(\text{Perfect Array}\)"的数量。
样例1
样例输入1
3
1 2 -3
样例输出1
5
样例解释
数组{\(1, 2, -3\)}的子数组{\(1\)},{\(1, 2\)},{\(2\)},{\(2, −3\)},{\(−3\)}是"\(\text{Perfect Array}\)",但子数组{\(1, 2, −3\)}就不是"\(\text{Perfect Array}\)"。
限制
\(100\%\)的数据:\(1 \le n \le 2×10^5, -10^9 \le A_i \le 10^9\)。