#116. 指数序列

指数序列

【问题描述】

伊凡在纸上写下了一个由 n 个非负整数组成的序列 a1 ,a2 ,…,an 。这个序列保证单调不降。 接着,伊凡又在纸上写下了另一个序列 2^a1 ,2^a2 ,…,2^an 。现在他想知道,最少要在这个序列中添加多少个形式为 2^x 的数(x 为非负整数),才能使这个序列所有整数的和为 2^(v-1) ,其中 v 为某个非负整数。

【输入格式】

第 1 行包括 1 个正整数 n(1≤n≤10^5 )。

第 2 行包括 n 个由空格隔开的整数a1 ,a2 ,…,an 。其中,0≤ai ≤2×10^9 ,保证 a1 ≤a2 ≤…≤an 。

【输出格式】

输出一行一个整数,表示最少在序列中添加数的数量。

【输入样例 1】

4
0 1 1 1

【输出样例 1】

0

【输入样例 2】

1
3

【输出样例 2】

3

【样例解释】

在第1个样例中不需要添加任何数,因为2^0+2^1+2^1+2^1 =1+2+2+2=7=2^3-1。

在第2个样例中,需要至少添加 3 个数,分别为2^0,2^1,2^2 。