atcoder#ARC119C. [ARC119C] ARC Wrecker 2

[ARC119C] ARC Wrecker 2

配点: 500500

問題文

AtCoder 街道には NN 棟のビルが建っており、西から順に 11 から NN までの番号が付けられています。最初の時点では、ビルの高さはそれぞれ A1,A2,,ANA_1, A_2, \dots, A_N です。

ARC 解体業者の社長である高橋君は、整数 l,rl, r (1l<rN)(1 \leq l \lt r \leq N) を選び、ビル l,l+1,,rl, l+1, \dots, r の高さをすべて 00 にしようと計画しています。この際に、以下の 22 種類の操作を好きな順番で何回でも行うことができます。

  • 整数 xx (lxr1)(l \leq x \leq r-1) を決めて、ビル xx・ビル x+1x+1 の高さを 11 ずつ増やす
  • 整数 xx (lxr1)(l \leq x \leq r-1) を決めて、ビル xx・ビル x+1x+1 の高さを 11 ずつ減らす(この操作は両方のビルの高さが 11 以上のときのみ可能)

選べる xx の範囲が (l,r)(l,r) に依存することに注意してください。

高橋君が計画を達成することが可能な (l,r)(l, r) の選び方は何通りあるでしょうか?

制約

  • 2N3000002 \leq N \leq 300000
  • 1Ai1091 \leq A_i \leq 10^9 (1iN)(1 \leq i \leq N)
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられます。

NN

A1A_1 A2A_2 \cdots ANA_N

出力

答えを出力してください。

5
5 8 8 6 6
3

(l,r)=(2,3),(4,5),(2,5)(l, r) = (2, 3), (4, 5), (2, 5) については、高橋君は目的を達成することができます。

例えば、(l,r)=(2,5)(l, r) = (2, 5) と選ぶとき、例えば以下の順に操作を行うことで、ビル 2,3,4,52, 3, 4, 5 の高さを 00 にできます。

  • 「ビル 4,54, 5 の高さを 11 ずつ減らす」操作を 66 回続けて行う
  • 「ビル 2,32, 3 の高さを 11 ずつ減らす」操作を 88 回続けて行う

残り 77 種類の (l,r)(l, r) の選び方については、どのような操作の手順をとっても、高橋君は目的を達成することができません。

7
12 8 11 3 3 13 2
3

(l,r)=(2,4),(3,7),(4,5)(l, r) = (2, 4), (3, 7), (4, 5) については、高橋君は目的を達成することができます。

例えば、(l,r)=(3,7)(l, r) = (3, 7) と選ぶとき、以下の図のように操作を行うことが考えられます。

10
8 6 3 9 5 4 7 2 1 10
1

高橋君が目的を達成できるのは、(l,r)=(3,8)(l, r) = (3, 8) のときしかありません。

14
630551244 683685976 249199599 863395255 667330388 617766025 564631293 614195656 944865979 277535591 390222868 527065404 136842536 971731491
8