atcoder#AGC040E. [AGC040E] Prefix Suffix Addition

[AGC040E] Prefix Suffix Addition

配点 : 14001400

問題文

すぬけくんは,長さ NN の整数列 x1,x2,,xNx_1,x_2,\cdots,x_N を持っています. 最初,xx の全ての要素は 00 です.

すぬけくんは,以下の 22 種類の操作を好きな順序で好きな回数行うことができます.

  • 操作 11: 整数 kk (1kN1 \leq k \leq N),及び長さ kk の非負整数列 c1,c2,,ckc_1,c_2,\cdots,c_k を自由に選ぶ. ただし,cc広義単調増加でなくてはならない. そして,すべての ii (1ik1 \leq i \leq k) について,xix_ixi+cix_i+c_i で置き換える.
  • 操作 22: 整数 kk (1kN1 \leq k \leq N),及び長さ kk の非負整数列 c1,c2,,ckc_1,c_2,\cdots,c_k を自由に選ぶ. ただし,cc広義単調減少な数列でなくてはならない. そして,すべての ii (1ik1 \leq i \leq k) について,xNk+ix_{N-k+i}xNk+i+cix_{N-k+i}+c_i で置き換える.

すぬけくんの目標は,全ての ii について,xi=Aix_i=A_i となるようにすることです. すぬけくんが目標を達成するために行う操作回数の最小値を求めてください.

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 入力される値はすべて整数である.

入力

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

NN

A1A_1 A2A_2 \cdots ANA_N

出力

すぬけくんが目標を達成するために行う操作回数の最小値を出力せよ.

5
1 2 1 2 1
3

例えば,以下のように 33 回の操作を行えば良いです. 33 回未満の操作で目標は達成できません.

  • k=2,c=(1,2)k=2,c=(1,2) として,操作 11 を行う.操作後,x=(1,2,0,0,0)x=(1,2,0,0,0) となる.
  • k=3,c=(0,0,1)k=3,c=(0,0,1) として,操作 11 を行う.操作後,x=(1,2,1,0,0)x=(1,2,1,0,0) となる.
  • k=2,c=(2,1)k=2,c=(2,1) として,操作 22 を行う.操作後,x=(1,2,1,2,1)x=(1,2,1,2,1) となる.
5
2 1 2 1 2
2
15
541962451 761940280 182215520 378290929 211514670 802103642 28942109 641621418 380343684 526398645 81993818 14709769 139483158 444795625 40343083
7