#A0667. 苦肉计

苦肉计

题目背景

人不自害,受害必真。假真真假,间以得行。童蒙之吉,顺以巽也。

题目描述

题目英文名(子文件夹名):ku
源代码文件名:ku.cpp
输入文件:ku.in
输出文件:ku.out

33DAI 指挥着 nn 名士兵,构成了一道防线。所有士兵从左到右排成了一排。可以用一个正整数序列 aa 描述这 nn 名士兵的战斗力。

ii 名士兵的战斗力为 aia_i。为了不被 Kitten 怀疑造反,33DAI 需要把这些士兵的总战斗力归零。为了达成这一目的,他可以进行下面两种操作:

  • 如果某名士兵的战斗力不为 00,则可以进行一次操作,将那名士兵的战斗力减少 11
  • 如果有 nnn>1n\gt 1)名士兵的战斗力相同,则可以进行一次操作,将其中的 n1n-1 名士兵的战斗力变为 00,只留下一个士兵。

33DAI 可以以任何顺序执行任意次数的上述操作,请问至少需要几次操作才能把所有士兵的战斗力之和变为零。

输入格式

第一行一个数 nn

第二行 nn 个整数,a1ana_1\sim a_n

输出格式

一个整数,即最少的操作次数。

6
3 3 1 1 1 3 
5

一种可行的操作方法如下:

  • 3 3 1 1 1 3:初始战斗力
  • 0 3 1 1 1 0:进行 11 次第二种操作(操作对象为所有战斗力为 33 的士兵)。
  • 0 1 1 1 1 0:进行 22 次第一种操作(操作对象为第二个士兵)。
  • 0 0 0 0 1 0:进行 11 次第二种操作(操作对象为所有战斗力为 11 的士兵)。
  • 0 0 0 0 0 0:进行 11 次第一种操作(操作对象为第五个士兵)。
1
2000
2000
5
5 3 1 4 2
9

数据规模与约定

对于 100%100\% 的数据,1n5×1051 \le n \le 5\times 10^51ai1091\le a_i\le 10^9

  • 子任务 1(10 分):保证 n=1n=1
  • 子任务 2(20 分):保证 ai=1a_i=1
  • 子任务 3(30 分):保证 ai1000a_i\le 1000
  • 子任务 4(40 分):没有特殊限制。