#XMOJ11808. 幂次加成

幂次加成

说明

时间限制:1 Sec 内存限制:256 MB 输入文件:robot.in 输出文件:robot.out

小明在训练一个机器人方阵。方阵里有 $n$ 个机器人,第 $i$ 个机器人的能量值为 $a_i$。能量值太乱会让方阵不稳定,小明想让所有机器人的能量值变成非递减的(即 $a_1 \le a_2 \le \dots \le a_n$)。

在第 $x$ 秒($x = 1, 2, 3, \dots$),小明可以选择任意多个互不相同的机器人,并给这些机器人的能量值同时增加 $2^{x-1}$。也就是说:第 $1$ 秒可以给选中的机器人各加 $1$,第 $2$ 秒各加 $2$,第 $3$ 秒各加 $4$,以此类推。每个机器人每秒最多被加一次,也可以不加。

请问小明最少需要多少秒,才能使所有机器人的能量值变成非递减的?

输入格式

第一行一个整数 $n$,表示机器人的数量。

第二行 $n$ 个整数 $a_1, a_2, \dots, a_n$,表示每个机器人的初始能量值。

输出格式

一个整数,表示最少需要的秒数。

样例

样例 1

3
5 3 2

2

样例说明:

一种操作方式如下:第 11 秒给第 33 个机器人加 11(变成 33);第 22 秒给第 22、33 个机器人各加 22(分别变成 55 和 55)。最终能量值为 5,5,55, 5, 5,非递减,共花费 22 秒。

可以证明无法用更短的时间达成目标。

样例 2

4
1 2 3 4

0

样例说明:

能量值已经非递减,不需要任何操作,答案为 00。

数据范围

$1 \le n \le 2 \times 10^5$,$1 \le a_i \le 10^9$。