atcoder#CODEFESTIVAL2017QUALAF. Squeezing Slimes

Squeezing Slimes

Score : 16001600 points

Problem Statement

There are AA slimes lining up in a row. Initially, the sizes of the slimes are all 11.

Snuke can repeatedly perform the following operation.

  • Choose a positive even number MM. Then, select MM consecutive slimes and form M/2M / 2 pairs from those slimes as follows: pair the 11-st and 22-nd of them from the left, the 33-rd and 44-th of them, ......, the (M1)(M-1)-th and MM-th of them. Combine each pair of slimes into one larger slime. Here, the size of a combined slime is the sum of the individual slimes before combination. The order of the M/2M / 2 combined slimes remain the same as the M/2M / 2 pairs of slimes before combination.

Snuke wants to get to the situation where there are exactly NN slimes, and the size of the ii-th (1iN1 \leq i \leq N) slime from the left is aia_i. Find the minimum number of operations required to achieve his goal.

Note that AA is not directly given as input. Assume A=a1+a2+...+aNA = a_1 + a_2 + ... + a_N.

Constraints

  • 1N1051 \leq N \leq 10^5
  • aia_i is an integer.
  • 1ai1091 \leq a_i \leq 10^9

Input

Input is given from Standard Input in the following format:

NN

a1a_1 a2a_2 ...... aNa_N

Output

Print the minimum number of operations required to achieve Snuke's goal.

2
3 3
2

One way to achieve Snuke's goal is as follows. Here, the selected slimes are marked in bold.

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

One way to achieve Snuke's goal is as follows.

  • (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