P9143 [THUPC 2023 初赛] 众数
题目描述
你有若干个 $[1,n]$ 内的正整数:对于 $1 \le i \le n$,你有 $a_i$ 个整数 $i$。设 $S = \sum_{i=1}^n a_i$。
对于一个序列 $p_1,p_2,\cdots,p_l$,定义其众数 $\text{maj}(p_1,p_2,\cdots,p_l)$ 为出现次数最多的数。若有多个数出现次数最多,则其中最大的数为其众数。
现在你需要把这 $S$ 个数排成一个序列 $b_1,b_2,\cdots,b_S$,使得 $\sum_{i=1}^S \text{maj}(b_1,b_2,\cdots,b_i)$ 最大。输出该最大值。
输入格式
第一行一个整数 $n$,表示值域。
接下来一行 $n$ 个正整数 $a_1,a_2,\cdots,a_n$,表示每种数的个数。
输出格式
输出一行一个正整数表示 $\sum_{i=1}^S \text{maj}(b_1,b_2,\cdots,b_i)$ 的最大值。
说明/提示
#### 样例解释 1
一个达到最大值的序列为 $(3,2,3,1,2,2)$。
#### 数据范围
对于所有测试数据,$1 \le n \leq 10^5$,$1 \le a_1,a_2,\cdots,a_n \le 10^5$。
#### 题目来源
来自 2023 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2023)初赛。
题解等资源可在 查看。