[THUPC 2023 初赛] 众数

Luogu
IDLGP9143
Time500ms
Memory512MB
DifficultyP3
贪心2023O2优化THUPC
你有若干个 $[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)$ 最大。输出该最大值。 ## Input 第一行一个整数 $n$,表示值域。 接下来一行 $n$ 个正整数 $a_1,a_2,\cdots,a_n$,表示每种数的个数。 ## Output 输出一行一个正整数表示 $\sum_{i=1}^S \text{maj}(b_1,b_2,\cdots,b_i)$ 的最大值。 [samples] ## Note #### 样例解释 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)初赛。 题解等资源可在 <https://github.com/THUSAAC/THUPC2023-Pre> 查看。
Samples
Input #1
3
1 3 2
Output #1
17
API Response (JSON)
{
  "problem": {
    "name": "[THUPC 2023 初赛] 众数",
    "description": {
      "content": "你有若干个 $[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$ 个数",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 500,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9143"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "你有若干个 $[1,n]$ 内的正整数:对于 $1 \\le i \\le n$,你有 $a_i$ 个整数 $i$。设 $S = \\sum_{i=1}^n a_i$。\n\n对于一个序列 $p_1,p_2,\\cdots,p_l$,定义其众数 $\\text{maj}(p_1,p_2,\\cdots,p_l)$ 为出现次数最多的数。若有多个数出现次数最多,则其中最大的数为其众数。\n\n现在你需要把这 $S$ 个数...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments