小H与序列
时间限制:1秒 内存限制:256M
【题目描述】
小H最近得到了一个长度为 \(n\) 的序列 \(a\) ,现在他想知道:序列中有多少个非空连续子序列的和小于给定的 \(t\)?。
也就是说,他需要计算满足 \(a_l+a_l+1+...+a_r < t\) 的序列下标对 \((l, r)\) 的数量,其中 \(1≤ l ≤ r ≤ n\) 。
请你帮助小H解决这个问题。
【输入格式】
第一行包含两个整数 \(n\) 和 \(t\) 。
第二行包含 \(n\) 个整数 \(a_1, a_2, ..., a_n\)。
【输出格式】
输出一个整数,表示满足条件的非空连续子序列的数量。
【输入输出样例】
Input
5 4
5 -1 3 4 -1
Output
5
【样例解释】
满足条件的子序列为:
· [2, 2],和为 -1
· [2, 3],和为 2
· [3, 3],和为 3
· [4, 5],和为 3
· [5, 5],和为 -1
【数据限制】
测试点 \(1-2\):\(n≤10000\),\(0 ≤ |a_i| ≤ 10^2\),\(0 ≤ |t| ≤ 10^5\)。
测试点 \(3−4\):\(n≤50000\),\(0 ≤ |a_i| ≤ 10^2\),\(0 ≤ |t| ≤ 10^5\)。
测试点 \(5−6\):\(n≤200000\),\(0 ≤ |a_i| ≤ 10^9\),\(0 ≤ |t| ≤ 2⋅10^{14}\)。
【来源】
Mr.he**