#245. [R40B]Yet another sequence problem

[R40B]Yet another sequence problem

时空限制

1s/512M

题目描述

给定一个长度为 nn 的正整数数组 aa 和一个正整数 kk

我们定义数组中的下标 ii 是“极好的”,当且仅当数组中存在一个连续区间 [l,r][l, r]1lrn1 \le l \le r \le n),使得该区间的数字的和加上 aia_i 恰好等于 kk

即满足:

j=lraj+ai=k\sum_{j=l}^{r}a_j + a_i = k

其中,符号 j=lraj\sum_{j=l}^{r}a_j 表示数组 aa 中下标从 llrr 的所有数字之和,即 al+al+1++ara_l + a_{l+1} + \dots + a_r

请你统计数组 aa 中有多少个下标 ii 是“极好的”。

格式

输入格式

第一行包含两个正整数 n,kn, k,分别表示数组长度和目标和。

第二行包含 nn 个正整数,第 ii 个数表示 aia_i

输出格式

输出一个整数,表示“极好的”下标 ii 的数量。

样例

样例输入 #1

5 7
5 2 3 4 1

样例输出 #1

4

样例解释 #1

数组为 [5, 2, 3, 4, 1],目标值 k=7k=7。我们需要找到区间和为 kaik - a_i 的区间。

  • 对于第 11 个数 55 (i=1i=1):需要区间和为 75=27-5=2。选择区间 [2,2][2, 2](元素为 22),满足条件。
  • 对于第 22 个数 22 (i=2i=2):需要区间和为 72=57-2=5。选择区间 [1,1][1, 1](元素为 55),满足条件。
  • 对于第 33 个数 33 (i=3i=3):需要区间和为 73=47-3=4。选择区间 [4,4][4, 4](元素为 44),满足条件。
  • 对于第 44 个数 44 (i=4i=4):需要区间和为 74=37-4=3。选择区间 [3,3][3, 3](元素为 33),满足条件。
  • 对于第 55 个数 11 (i=5i=5):需要区间和为 71=67-1=6。无法在数组中找到和为 66 的区间。

因此,共有 44 个极好的下标。

数据规模

对于 100%100\% 的数据,满足 1n50001 \le n \le 50001ai,k50001 \le a_i, k \le 5000