atcoder#CADDI2018C. Negative Doubling

Negative Doubling

题目描述

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

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

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

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

输入格式

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

N N A1 A_1 A2 A_2 ... ... AN A_N

输出格式

答えを出力せよ.

题目大意

nn 个正整数 a1,a2,,ana_1,a_2,\dots,a_n,现在高桥君想要对它们进行操作:

  • 对于 aia_i,将它乘以 2-2

现在高桥君想要使 aa 序列单调不降,求最小操作次数。

如果不可能,输出 1-1

4
3 1 4 1
3
5
1 2 3 4 5
0
8
657312726 129662684 181537270 324043958 468214806 916875077 825989291 319670097
7

提示

制約

  • 1  N  200000 1\ \leq\ N\ \leq\ 200000
  • 1  Ai  109 1\ \leq\ A_i\ \leq\ 10^9

Sample Explanation 1

例えば,次のようにすればよいです. - i=4 i=4 を選び,A4 A_4 の値を 2 -2 倍にする.A1, A2, A3, A4 A_1,\ A_2,\ A_3,\ A_4 はそれぞれ 3, 1, 4, 2 3,\ 1,\ 4,\ -2 になる. - i=1 i=1 を選び,A1 A_1 の値を 2 -2 倍にする.A1, A2, A3, A4 A_1,\ A_2,\ A_3,\ A_4 はそれぞれ 6, 1, 4, 2 -6,\ 1,\ 4,\ -2 になる. - i=4 i=4 を選び,A4 A_4 の値を 2 -2 倍にする.A1, A2, A3, A4 A_1,\ A_2,\ A_3,\ A_4 はそれぞれ 6, 1, 4, 4 -6,\ 1,\ 4,\ 4 になる.

Sample Explanation 2

操作を一切せずとも A1  A2  ...  AN A_1\ \leq\ A_2\ \leq\ ...\ \leq\ A_N が成り立っています.