题目描述
【题目背景】
人不自害,受害必真。假真真假,间以得行。童蒙之吉,顺以巽也。
33DAI 指挥着 $n$ 名士兵,构成了一道防线。所有士兵从左到右排成了一排。可以用一个正整数序列 $a$ 描述这 $n$ 名士兵的战斗力。
第 $i$ 名士兵的战斗力为 $a_i$。为了不被 Kitten 怀疑造反,33DAI 需要把这些士兵的总战斗力归零。为了达成这一目的,他可以进行下面两种操作:
- 如果某名士兵的战斗力不为 $0$,则可以进行一次操作,将那名士兵的战斗力减少 $1$。
- 如果有 $n$($n\gt 1$)名士兵的战斗力相同,则可以进行一次操作,将其中的 $n-1$ 名士兵的战斗力变为 $0$,只留下一个士兵。
33DAI 可以以任何顺序执行任意次数的上述操作,请问至少需要几次操作才能把所有士兵的战斗力之和变为零。
输入
第一行一个数 $n$。
第二行 $n$ 个整数,$a_1\sim a_n$。
输出
一个整数,即最少的操作次数。
样例输入输出
提示
【样例1解释】
一种可行的操作方法如下:
- `3 3 1 1 1 3`:初始战斗力
- `0 3 1 1 1 0`:进行 $1$ 次第二种操作(操作对象为所有战斗力为 $3$ 的士兵)。
- `0 1 1 1 1 0`:进行 $2$ 次第一种操作(操作对象为第二个士兵)。
- `0 0 0 0 1 0`:进行 $1$ 次第二种操作(操作对象为所有战斗力为 $1$ 的士兵)。
- `0 0 0 0 0 0`:进行 $1$ 次第一种操作(操作对象为第五个士兵)。
【数据规模与约定】
对于 $100\%$ 的数据,$1 \le n \le 5\times 10^5$,$1\le a_i\le 10^9$。
- 子任务 1(10 分):保证 $n=1$。
- 子任务 2(20 分):保证 $a_i=1$。
- 子任务 3(30 分):保证 $a_i\le 1000$。
- 子任务 4(40 分):没有特殊限制。