#bcu302019b. [bcu30_2019_b]Interval Addition

[bcu30_2019_b]Interval Addition

問題文

ミクシィ社員の青木さんは NN 要素から成る数列 AA を持っており、はじめ数列の全ての要素は 00 です。

青木さんは以下の操作を 00 回以上繰り返して、全ての 1leqileqN1 \\leq i \\leq N について数列の ii 番目の要素が aia_i になるようにしたいです。

  • 1leqkleqN1 \\leq k \\leq N1leqlleqN+1k1 \\leq l \\leq N+1-k を満たす正の整数 k,lk, l を決める。長さ kk の非負整数列 (0leq)B1 leqB2leq...leqBk(0 \\leq )B_1 \\leq B_2 \\leq ... \\leq B_k を好きに決め、1leqileqk1 \\leq i \\leq k に対して Al+i1:=Al+i1+BiA_{l+i-1} := A_{l+i-1} + B_i とする。

毎回の操作では異なる k,l,Bk, l, B を使うことができます。青木さんが目的の数列を得るために、最小で何回の操作が必要となるかを求めてください。

制約

  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • 0leqaileq1090 \\leq a_i \\leq 10^9
  • 入力は全て整数である

入力

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

NN a1a_1 a2a_2 ...... aNa_N

出力

青木さんが目的の数列を得るために必要な操作回数の最小値を出力せよ。


入力例 1

2
3 4

出力例 1

1

k=2,l=1,B=3,4k = 2, l = 1, B = \\{3, 4\\} とすると、 青木さんは 11 回の操作で目的の数列を得ることができます。


入力例 2

2
4 3

出力例 2

2

11 回目の操作で k=2,l=1,B=3,3k = 2, l = 1, B = \\{3, 3\\} とすると AA3,3\\{3, 3\\} となります。

22 回目の操作で k=1,l=1,B=1k = 1, l = 1, B = \\{1\\} とすると AA4,3\\{4, 3\\} となります。

よって青木さんは 22 回の操作で目的の数列を得ることができ、また 11 回以下で目的の数列を得ることは出来ないので 22 を出力してください。


入力例 3

4
4 0 4 0

出力例 3

2