CF1042D Petya and Array

题目描述

Petya 有一个包含 $n$ 个整数的数组 $a$。他最近学会了前缀和,现在可以非常快速地计算数组中任意一段连续区间的元素和。区间指的是数组中一段连续的非空元素序列。 现在他想知道,数组中有多少个区间的元素和小于 $t$。请你帮助 Petya 计算这个数量。 更正式地说,你需要计算有多少对 $l, r$($l \le r$)满足 $a_l + a_{l+1} + \dots + a_{r-1} + a_r < t$。

输入格式

第一行包含两个整数 $n$ 和 $t$($1 \le n \le 200\,000, |t| \le 2\cdot10^{14}$)。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($|a_{i}| \le 10^{9}$)——这是 Petya 的数组。注意,数组中的元素可以为负数、零或正数。

输出格式

输出 Petya 的数组中,元素和小于 $t$ 的区间数量。

说明/提示

在第一个样例中,以下区间的元素和小于 $4$: - $[2, 2]$,元素和为 $-1$ - $[2, 3]$,元素和为 $2$ - $[3, 3]$,元素和为 $3$ - $[4, 5]$,元素和为 $3$ - $[5, 5]$,元素和为 $-1$。 由 ChatGPT 4.1 翻译