CF2108F Fallen Towers
题目描述
Pizano 建造了一个由 $n$ 座高塔组成的数组 $a$,每座高塔由 $a_i \ge 0$ 个方块组成。
Pizano 可以推倒一座高塔,使得接下来的 $a_i$ 座高塔各增加 $1$ 个方块。换句话说,他可以选取元素 $a_i$,将接下来的 $a_i$ 个元素各加 $1$,然后将 $a_i$ 设为 $0$。如果推倒的高塔方块数超出数组范围,则这些方块会消失。如果 Pizano 推倒一座 $0$ 方块的高塔,则不会发生任何变化。
Pizano 希望以任意顺序推倒所有 $n$ 座高塔,每座高塔恰好被推倒一次。也就是说,对于每个 $i$ 从 $1$ 到 $n$,他将恰好推倒位置 $i$ 的高塔一次。
此外,最终的高塔高度数组必须是非递减的。这意味着在他推倒所有 $n$ 座高塔后,对于任意 $i < j$,位置 $i$ 的高塔高度不能超过位置 $j$ 的高塔高度。
你需要输出最终高塔高度数组的最大 $\text{MEX}$ 值。
$\text{MEX}$ 是指数组中缺失的最小非负整数。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $t$($1 \le t \le 10^4$)。接下来是测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 10^5$)——高塔的数量。
每个测试用例的第二行包含 $n$ 个整数——高塔的初始高度 $a_1, \ldots, a_n$($0 \leq a_i \leq 10^9$)。
保证所有测试用例的 $n$ 之和不超过 $10^5$。
输出格式
对于每个测试用例,输出一个整数——最终数组的最大 $\text{MEX}$ 值。
说明/提示
第一个测试用例的解释:

第二个测试用例的解释:注意所有高塔都被恰好推倒一次,且最终的高度数组是非递减的。

翻译由 DeepSeek V3 完成