#CF1398C. 好子数组 / Good Subarrays

好子数组 / Good Subarrays

题目描述

给定数组 a1,a2,,ana_1,a_2,\dots,a_n,数组每个元素取值为 0099。 如果一段子数组 al,al+1,,ara_l,a_{l+1},\dots,a_r 满足子数组元素之和等于子数组的长度,即

i=lrai=rl+1\sum_{i=l}^{r} a_i = r-l+1

就称该子数组为“好子数组”。

例如数组 a=[1,2,0]a=[1,2,0],一共有 33 个好子数组:a11=[1]a_{1\dots1}=[1]a23=[2,0]a_{2\dots3}=[2,0]a13=[1,2,0]a_{1\dots3}=[1,2,0]

请计算数组 aa 中好子数组的总数量。

输入

第一行一个整数 tt1t10001 \le t \le 1000),代表测试用例组数。

每组测试用例: 第一行输入整数 nn1n1051 \le n \le 10^5),代表数组长度。 第二行给出长度为 nn 的数字字符串,字符串第 ii 位字符对应 aia_i 的数值。

保证全部测试用例的 nn 之和不超过 10510^5

输出

对每组测试用例输出一个整数,表示该数组中好子数组的数量。

样例

3
3
120
5
11011
6
600005
3
6
1

说明

第一组样例就是题目描述举例,共 33 个好子数组。

第二组样例共有 66 个好子数组:a11a_{1\dots1}a22a_{2\dots2}a12a_{1\dots2}a44a_{4\dots4}a55a_{5\dots5}a45a_{4\dots5}

第三组样例仅有 11 个好子数组:a26a_{2\dots6}

原题链接

原题链接