#686. 指数序列

指数序列

问题描述

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

Format

Input

第 1 行包括 1 个正整数 n(1≤n≤<105 )。 第 2 行包括 n 个由空格隔开的整数a1a_1a2a_2 ,…,ana_n 。其中,0≤ai ≤2×105 ,保证 a1a_1a2a_2 ≤…≤ana_n

Output

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

Samples

4
0 1 1 1
0

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

1
3
3

在第2个样例中,需要至少添加 3 个数,分别为20,21,22

Limitation

1s, 1024KiB for each test case.