给定数组 a,对任意区间 [l, r],定义区间内从起点开始的前缀和序列 S_i = sum(a_l..a_i) 的最大值。若这个最大值恰好等于 k,则该区间可激活。要求统计所有满足条件的区间数。
设前缀和 P[0]=0, P[i]=a_1+...+a_i。区间 [l,r] 内的相对前缀和为 P[i]-P[l-1] (i∈[l,r]),其最大值等于:
max_{i∈[l..r]}(P[i]) - P[l-1]
在一处考古遗址中,研究人员发现了一排共 n 个刻痕,每个刻痕记录了该处的相对高度变化 ai(正数表示上升,负数表示下降)。定义一个连续非空的刻痕区间 [l,r] 的「最大净上升」为:从起点 l 开始,依次累积所经刻痕的高度变化,记录过程中达到的最高累积高度,即 maxl≤i≤r(∑j=liaj)。
现给定一个关键值 K,请统计有多少个区间 [l,r] 的最大净上升恰好等于 K。
约束:刻痕个数 n 不超过 2×105,K 和每个 ai 的绝对值均不超过 109。
第一行包含两个整数 n 和 K,分别表示刻痕的数量和给定的关键值。 第二行包含 n 个整数 a1,a2,…,an,依次表示每个刻痕记录的高度变化。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册