问题 5320 --虎哥之子序列

5320: 虎哥之子序列

时间限制: 1 Sec  内存限制: 128 MB
提交: 13  解决: 5
[提交][状态][命题人:]

题目描述

一个序列c是序列b的子序列定义为: 从b序列开始位置向右删除若干个元素(可以为0个或全部)和结束位置向左删除若干个元素(可以为0个或全部);删除后剩下的元素c即为b的子序列。
若某序列每个非空子序列的和值都不为0,则称该序列为"good"。例如,序列[-1,2,-3]是good序列,因为其所有的子序列[-1],[-1,2],[-1,2,-3],[2],[2,-3],[-3]中的元素和都不为0;而序列[-1,2,-1,-3]不是good序列,因为子序列[-1,2,-1]的所有元素和为0。
现在请你帮忙统计一下结定序列a中的非空good子序列的数量。

输入

第一行仅含有一个整数n (1≤n≤2e5),表示序列a的长度。
第二行含有n个整数a1,a2,...,an(-1e9≤ai≤1e9)。

输出

输出仅有一个整数,表示good子序列的数量。
样例输入
Copy
3
1 2 -3
样例输出
Copy
5

提示

样例2
输入:
3
41 -41 41
输出:
3

第一个测试样例:子序列 [1],[1,2],[2],[2,−3],[−3]为good子序列; 子序列[1,2,−3]不是good子序列,因为其子序列[1,2,−3] 全部元素之和为0。

第二个测试样例:长度为1子序列都是good子序列;子序列[41,-41,41]不是good子序列,因为其子序列[41,−41] 的元素之和为0。

来源

[提交][状态]