#4359. 计数区间(Count Interval)

计数区间(Count Interval)

题目描述

给定一个长度为 NN 的序列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N) 和一个整数 KK。请计算有多少个连续子序列的和等于 KK
换句话说,有多少对整数 (l,r)(l,r) 满足以下所有条件?

  • 1lrN1 \leq l \leq r \leq N
  • i=lrAi=K\displaystyle\sum_{i=l}^{r}A_i = K

输入格式

输入从标准输入中给出,格式如下:
NN KK
A1A_1 A2A_2 \ldots ANA_N

输出格式

输出所求答案。

样例

6 5
8 -3 5 7 0 -4
3
2 -1000000000000000
1000000000 -1000000000
0

样例解释

【样例1说明】
(l,r)=(1,2),(3,3),(2,6)(l,r)=(1,2),(3,3),(2,6) 是满足条件的三对整数。

【样例2说明】
可能没有满足条件的对。

数据范围

1N2×1051 \leq N \leq 2 \times 10^5
Ai109|A_i| \leq 10^9
K1015|K| \leq 10^{15}
所有输入均为整数。

来源

  • AtCoder ABC233D