atcoder#CODEFESTIVAL2017QUALAF. Squeezing Slimes

Squeezing Slimes

配点 : 16001600

問題文

AA 匹のスライムが横一列に並んでいます。 最初、スライムの大きさはすべて 11 です。

すぬけ君は次の操作を繰り返し行うことができます。

  • 正の偶数 MM をひとつ選ぶ。 位置が連続する MM 匹のスライムを選び、それらのうち左から (1, 2)(1,\ 2) 番目、(3, 4)(3,\ 4) 番目、…、(M1, M)(M - 1,\ M) 番目のスライムをそれぞれペアにする。 そして、各ペアごとに 22 匹のスライムを合成して 11 匹のスライムにする。 ここで、合成後のスライムの大きさは、合成前のスライムの大きさの和とする。 また、合成後の M/2M / 2 匹のスライムの順序は、合成前の M/2M / 2 組のペアの順序のままである。

すぬけ君の目標は、スライムをちょうど NN 匹にして、それらのうち左から ii (1iN1 \leq i \leq N) 番目のスライムの大きさをちょうど aia_i にすることです。 すぬけ君が目標を達成するために必要な操作回数の最小値を求めてください。

なお、AA は入力として与えられず、A=a1+a2+...+aNA = a_1 + a_2 + ... + a_N であるとします。

制約

  • 1N1051 \leq N \leq 10^5
  • aia_i は整数である。
  • 1ai1091 \leq a_i \leq 10^9

入力

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

NN

a1a_1 a2a_2 ...... aNa_N

出力

すぬけ君が目標を達成するために必要な操作回数の最小値を出力せよ。

2
3 3
2

次のように操作を行えばよいです。 操作対象のスライムを太字で表しています。

  • (1, 1, 1, 1, 1, 1) → (1, 2, 2, 1)
  • (1, 2, 2, 1) → (3, 3)
4
2 1 2 2
2

次のように操作を行えばよいです。

  • (1, 1, 1, 1, 1, 1, 1) → (2, 1, 1, 1, 1, 1)
  • (2, 1, 1, 1, 1, 1) → (2, 1, 2, 2)
1
1
0
10
3 1 4 1 5 9 2 6 5 3
10