#CF2033D. Kousuke的作业

Kousuke的作业

D. Kousuke 的作业
每次测试的时间限制:2 秒
每次测试的内存限制:256 兆字节


与 Sakurako 旅行后,Kousuke 非常害怕,因为他忘记了自己的编程作业。在这项作业中,老师给了他一个包含 nn 个整数的数组 aa,并让他计算数组 aa不重叠的“美丽”子段的最大数量

一个子段 [l,r][l, r] 被认为是美丽的,如果:

al+al+1++ar1+ar=0a_l + a_{l+1} + \dots + a_{r-1} + a_r = 0

对于给定的数组 aa,你的任务是计算最多能选出多少个不重叠的美丽子段。


输入
第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例的数量。
每个测试用例由两行组成:

  • 第一行包含一个整数 nn1n1051 \le n \le 10^5)—— 数组 aa 的长度。
  • 第二行包含 nn 个整数 aia_i105ai105-10^5 \le a_i \le 10^5)—— 数组 aa 的元素。
    保证所有测试用例的 nn 之和不超过 3×1053 \times 10^5

输出
对于每个测试用例,输出一个整数:最多能选出的不重叠的美丽子段的数量。


示例
输入:

3
5
2 1 -3 2 1
7
12 -4 4 43 -3 -5 8
6
0 -4 0 3 0 1

输出:

1
2
3