U457119 合并石子

题目描述

小 C 有 $n$ 堆石子,初始时第 $i$ 堆有 $a_i$ 个。 小 C 可以对这些石子进行以下操作: 1. 向任意一堆石子中添加一个石子; 2. 将两堆**数量相同**的石子合并为一堆石子,新的这堆石子的数量为合并前两堆石子的数量之和。 小 C 想使用尽量少的操作 $1$ 使得 $n$ 堆石子合并为一堆。你需要求出操作 $1$ 最少需要进行多少次。

输入格式

第一行,输入一个正整数 $n$,表示石子的堆数。 第二行,输入 $n$ 个正整数,第 $i$ 个为 $a_i$,表示第 $i$ 堆石子的石子数量。

输出格式

共一行,输出一个正整数,表示最少需要进行几次操作 $1$。

说明/提示

**【样例解释】** 对于样例 $1$,各堆石子数量变化如下: - $1,2,3,4,5\to2,2,3,4,5$(进行 $1$ 次操作 $1$); - $2,2,3,4,5\to4,3,4,5$(进行 $1$ 次操作 $2$); - $4,3,4,5\to4,4,4,5$(进行 $1$ 次操作 $1$); - $4,4,4,5\to8,4,5$(进行 $1$ 次操作 $2$); - $8,4,5\to 8,5,5$(进行 $1$ 次操作 $1$); - $8,5,5\to8,10$(进行 $1$ 次操作 $2$); - $8,10\to 10,10$(进行 $2$ 次操作 $1$); - $10,10\to20$(进行 $1$ 次操作 $2$)。 总共进行了 $5$ 次操作 $1$。可以说明不存在更优的方案。 对于样例 $2$,依次将 $1,1$、$2,2$、$4,4$、$8,8$ 合并即可,不需要进行操作 $1$。 **【数据规模与约束】** 本题采用子任务捆绑测试。 |子任务|$n$|特殊性质|分值| | :----------: | :----------: | :----------: | :----------: | |$1$|$\leq 5$|无|$5$| |$2$|$\leq 15$|无|$15$| |$3$|$\leq 5\times10^5$|$a_i=1$|$15$| |$4$|$\leq 5\times10^3$|无|$15$| |$5$|$\leq 2\times10^5$|无|$20$| |$6$|$\leq 5\times 10^5$|无|$30$| 对于所有测试点,保证 $1\leq n\leq 5\times10^5,1\leq a_i\leq 10^9$。