CF1398C Good Subarrays
题目描述
有一个数组$a_1,a_2,\dots,a_n$,满足$\forall i \in[1,n]$ 有 $0 \le a_i \le 9$。
我们称一个子数组 $a_l,a_{l+1},a_{l+2},\dots,a_{r-1},a_r$ 是“好”的,当且仅当这个子数组中所有元素的和等于它的长度(即 $\sum_{i=l}^r a_i = r-l+1$ )。
现在要你计算出数组 $a$ 中所有“好”的子数组的数量。
输入格式
第一行,一个数 $t$ ,表示数据组数。
接下来 $2\times t$ 行,每两行代表一组数据:
- 第一行,一个整数 $n$ ,表示 $a$ 数组的长度;
- 接下来一行,一个长度为 $n$ 的由数字组成的字符串,其中第 $i$ 个数字的值是 $a_i$ 的值。
输出格式
对于每组数据,输出 $a$ 数组中“好”的子数组的数量。
说明/提示
### 样例解释
第一组数据中, $a_{1\dots1},a_{2\dots3},a_{1\dots3}$ 是原数组的“好”子数组;
第二组数据中, $a_{1\dots1},a_{2\dots2},a_{1\dots2},a_{4\dots4},a_{5\dots5},a_{4\dots5}$ 这$6$个子数组是原数组的“好”子数组;
第三组数据中,只有 $a_{2\dots6}$ 是原数组的“好”子数组。
$1\le t\le 1000,1\le n\le 10^5,1\le \sum n \le 10^5$