[ARC169B] Subsegments with Small Sums

题意翻译

### 题目描述 给定一个正整数 $S$。对于正整数序列 $x$ ,我们定义函数 $f(x)$ 如下: - 将 $x$ 分解为几个连续的子序列。对于每个连续子序列,其元素之和最多为 $S$。$f(x)$ 是在这样的要求下分解成的连续子序列的最小数目。 现在给定一个长度为 $N$ 的正整数序列 $A=(A_1,A_2,\cdots,A_N)$,请求出 $\sum_{1 \leq l \leq r \leq N} f((A_l,A_{l+1},\cdots,A_r))$。 ### 输入格式 第一行两个整数 $N$ 和 $S$。 第二行 $N$ 个整数表示序列 $A$。 ### 输出格式 一行一个整数 $\sum_{1 \leq l \leq r \leq N} f((A_l,A_{l+1},\cdots,A_r))$。 ### 说明/提示 $1 \leq N \leq 250000$,$1 \leq S \leq 10^{15}$,$1 \leq A_i \leq \min(S,10^9)$,所有输入都是整数。 样例一解释: 样例中 $x=(1,2,3)$。分解方案 $(1,2),(3)$ 满足条件,可以证明没有分解成少于两个连续子序列的方案满足条件,所以 $f((1,2,3))=2$。 下面显示的是可能的 $l,r$ 和对应的 $f$ 值: - $(l,r)=(1,1)$:$f((1))=1$ - $(l,r)=(1,2)$:$f((1,2))=1$ - $(l,r)=(1,3)$:$f((1,2,3))=2$ - $(l,r)=(2,2)$:$f((2))=1$ - $(l,r)=(2,3)$:$f((2,3))=2$ - $(l,r)=(3,3)$:$f((3))=1$ 因此,答案是$1+1+2+1+2+1=8$。

题目描述

[problemUrl]: https://atcoder.jp/contests/arc169/tasks/arc169_b 正整数 $ S $ が与えられます. 正整数列 $ x $ に対し,$ f(x) $ を以下のように定めます. - $ x $ をいくつかの連続部分列に分解することを考える. このとき,どの連続部分列についても要素の総和が $ S $ **以下**でなくてはならない. このような分解における連続部分列の個数の最小値を $ f(x) $ の値とする. なお,この問題の制約下では $ f $ の値が必ず定義できることが証明できます. 正整数列 $ A=(A_1,A_2,\cdots,A_N) $ が与えられます. $ \sum_{1\ \leq\ l\ \leq\ r\ \leq\ N}\ f((A_l,A_{l+1},\cdots,A_r)) $ の値を求めてください.

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる. > $ N $ $ S $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $

输出格式


答えを出力せよ.

输入输出样例

输入样例 #1

3 3
1 2 3

输出样例 #1

8

输入样例 #2

5 1
1 1 1 1 1

输出样例 #2

35

输入样例 #3

5 15
5 4 3 2 1

输出样例 #3

15

输入样例 #4

20 1625597454
786820955 250480341 710671229 946667801 19271059 404902145 251317818 22712439 520643153 344670307 274195604 561032101 140039457 543856068 521915711 857077284 499774361 419370025 744280520 249168130

输出样例 #4

588

说明

### 制約 - $ 1\ \leq\ N\ \leq\ 250000 $ - $ 1\ \leq\ S\ \leq\ 10^{15} $ - $ 1\ \leq\ A_i\ \leq\ \min(S,10^9) $ - 入力される値はすべて整数. ### Sample Explanation 1 例えば $ x=(1,2,3) $ を考えると,$ (1,2),(3) $ という分解が条件を満たし, かつ $ 2 $ 個未満の連続部分列に分解した場合は条件を満たさないため,$ f((1,2,3))=2 $ です. ありうる $ l,r $ とそれに対応する $ f $ の値は以下の通りです. - $ (l,r)=(1,1) $: $ f((1))=1 $ - $ (l,r)=(1,2) $: $ f((1,2))=1 $ - $ (l,r)=(1,3) $: $ f((1,2,3))=2 $ - $ (l,r)=(2,2) $: $ f((2))=1 $ - $ (l,r)=(2,3) $: $ f((2,3))=2 $ - $ (l,r)=(3,3) $: $ f((3))=1 $ よって答えは $ 1+1+2+1+2+1=8 $ になります.