#E0007. 连续子序列

连续子序列

题目描述

给定一个长度为 n(1n105)n(1 \le n \le 10^5) 的数列 a1,a2,,an(10ai10)a_1, a_2, \ldots, a_n(-10 \le a_i \le 10),你需要找出数列 aa 存在多少个连续子序列,满足连续子序列中的元素和等于元素个数。即:需要找存在多少下标对 (l,r)(l, r) 满足 1lrn1 \le l \le r \le nal+al+1++ar1+ar=rl+1a_l + a_{l+1} + \ldots + a_{r-1} + a_r = r - l + 1

输入格式

第一行,一个整数 n(1n105)n(1 \le n \le 10^5)

第二行,nn 个整数 a1,a2,,an(10ai10)a_1, a_2, \ldots, a_n(-10 \le a_i \le 10),两两之间以一个空格分隔。

输出格式

输出一个整数,表示满足元素和等于元素个数的连续子序列个数。

5
1 1 0 1 1
6
6
4 3 2 -6 5 7
1

说明/提示

样例解释

  • 样例1:(1,1)(1,1)(1,2)(1,2)(2,2)(2,2)(4,4)(4,4)(4,5)(4,5)(5,5)(5,5)
  • 样例2:(2,5)(2,5)

数据规模与约定

  • 对于 20%20\% 的数据,n10n \le 10
  • 对于 40%40\% 的数据,n1000n \le 1000
  • 对于 100%100\% 的数据,1n105,10ai101 \le n \le 10^5, -10 \le a_i \le 10