atcoder#ABC233D. [ABC233D] Count Interval

[ABC233D] Count Interval

题目描述

長さ N N の数列 A=(A1,A2,,AN) A=(A_1,A_2,\ldots,A_N) と、整数 K K が与えられます。

A A の連続部分列のうち、要素の和が K K になるものはいくつありますか?
すなわち、以下の条件を全て満たす整数の組 (l,r) (l,r) はいくつありますか?

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

输入格式

入力は以下の形式で標準入力から与えられる。

N N K K A1 A_1 A2 A_2 \ldots AN A_N

输出格式

答えを出力せよ。

题目大意

给定一个数组 aa,问有多少个区间满足区间里所有的数的和是 kk

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

提示

制約

  • 1 N  2× 105 1\leq\ N\ \leq\ 2\times\ 10^5
  • Ai  109 |A_i|\ \leq\ 10^9
  • K  1015 |K|\ \leq\ 10^{15}
  • 入力に含まれる値は全て整数である

Sample Explanation 1

(l,r)=(1,2),(3,3),(2,6) (l,r)=(1,2),(3,3),(2,6) 3 3 組が条件を満たします。

Sample Explanation 2

条件を満たす (l,r) (l,r) の組が 1 1 つも存在しないこともあります。