#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
样例说明:
一种操作方式如下:第 秒给第 个机器人加 (变成 );第 秒给第 、 个机器人各加 (分别变成 和 )。最终能量值为 ,非递减,共花费 秒。
可以证明无法用更短的时间达成目标。
样例 2
4
1 2 3 4
0
样例说明:
能量值已经非递减,不需要任何操作,答案为 。
数据范围
$1 \le n \le 2 \times 10^5$,$1 \le a_i \le 10^9$。
相关
在下列比赛中: