CF305C Ivan and Powers of Two

题目描述

Ivan 有一个包含 $n$ 个非负整数 $a_{1},a_{2},...,a_{n}$ 的数组。Ivan 知道该数组是非递减排列的。 Ivan 把 $2^{a_{1}},2^{a_{2}},...,2^{a_{n}}$ 这 $n$ 个数都写在一张纸上。现在他想知道,最少需要再在纸上添加多少个形如 $2^{b}$($b \geq 0$)的数,使得纸上所有数字的和等于 $2^{v}-1$,其中 $v$ 是某个整数且 $v \geq 0$。 请帮助 Ivan 计算需要添加的最小数字数量。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 10^{5}$)。 第二行包含 $n$ 个用空格分隔的整数 $a_{1},a_{2},...,a_{n}$($0 \leq a_{i} \leq 2 \cdot 10^{9}$)。保证 $a_{1} \leq a_{2} \leq ... \leq a_{n}$。

输出格式

输出一个整数,表示所需添加的最小数字数量。

说明/提示

在第一个样例中,不需要添加任何数字,所有数的和等于 $2^{3}-1=7$。 在第二个样例中,需要添加的数字是 $2^{0}$、$2^{1}$、$2^{2}$。 由 ChatGPT 5 翻译