AT_arc169_b [ARC169B] Subsegments with Small Sums

Description

[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)) $ の値を求めてください.

Input Format

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

Output Format

答えを出力せよ.

Explanation/Hint

### 制約 - $ 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 $ になります.