atcoder#CADDI2018C. Negative Doubling

Negative Doubling

配点 : 800800

問題文

NN 個の正の整数 A1,A2,...,ANA_1, A_2, ..., A_N があります. 高橋君は,これらの整数に対して,次の操作を好きな回数行うことができます:

  • 1iN1 \leq i \leq N を選び,AiA_i の値を 2-2 倍にする.

マイナス 22 倍であることに注意してください.

高橋君は,A1A2...ANA_1 \leq A_2 \leq ... \leq A_N が成り立つようにしたいです. このために必要な操作の回数の最小値を求めてください.ただし,不可能な場合は -1 を出力してください.

制約

  • 1N2000001 \leq N \leq 200000
  • 1Ai1091 \leq A_i \leq 10^9

入力

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

NN

A1A_1 A2A_2 ...... ANA_N

出力

答えを出力せよ.

4
3 1 4 1
3

例えば,次のようにすればよいです.

  • i=4i=4 を選び,A4A_4 の値を 2-2 倍にする.A1,A2,A3,A4A_1, A_2, A_3, A_4 はそれぞれ 3,1,4,23, 1, 4, -2 になる.
  • i=1i=1 を選び,A1A_1 の値を 2-2 倍にする.A1,A2,A3,A4A_1, A_2, A_3, A_4 はそれぞれ 6,1,4,2-6, 1, 4, -2 になる.
  • i=4i=4 を選び,A4A_4 の値を 2-2 倍にする.A1,A2,A3,A4A_1, A_2, A_3, A_4 はそれぞれ 6,1,4,4-6, 1, 4, 4 になる.
5
1 2 3 4 5
0

操作を一切せずとも A1A2...ANA_1 \leq A_2 \leq ... \leq A_N が成り立っています.

8
657312726 129662684 181537270 324043958 468214806 916875077 825989291 319670097
7