AT_arc069_c.[ARC069E] Frequency

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

すぬけ君喜欢制作数列。

现在有 11 到 NN 编号的 NN 堆石子。第 ii 堆有 aia_i 个石子。

すぬけ君准备用以下操作,构造一个长度为 ∑ai\sum a_i 的数列 ss:

  1. 在所有石子数量最多的石堆中,选择编号最小的一个,记其编号为 xx,然后在 ss 的末尾添加 xx。
  2. 任选一个仍有至少 11 个石子的石堆,从中取出一个石子。
  3. 如果仍存在至少 11 个石子的石堆,转至步骤 1,否则流程结束。

请你求出:当 ss 是按字典序最小的情况下,ss 中每个 1,2,…,N1,2,\ldots,N 分别出现了多少次。

输入格式

输入一行,包括 N a1 a2 … aNN\ a_1\ a_2\ \ldots\ a_N。

输出格式

输出 NN 行,第 ii 行输出 ii 在字典序最小的 ss 中出现的次数。

输入输出样例

  • 输入#1

    2
    1 2

    输出#1

    2
    1
  • 输入#2

    10
    1 2 1 3 2 4 2 5 8 1

    输出#2

    10
    7
    0
    4
    0
    3
    0
    2
    3
    0

说明/提示

限制条件

  • 1≤N≤1051 \leq N \leq 10^{5}
  • 1≤ai≤1091 \leq a_i \leq 10^{9}

样例解释 1

可以按如下方式构造出字典序最小的数列:

  • 首先最大石堆是第 22 堆,所以把 22 加入 ss,然后从第 22 堆取走 11 个石子。
  • 然后最大石堆为第 11 堆和第 22 堆。选择编号较小的第 11 堆,把 11 加入 ss,然后再从第 22 堆取走 11 个石子。
  • 然后最大石堆只有第 11 堆,把 11 加入 ss,再从第 11 堆取走 11 个石子。

此时构造出的数列为 (2,1,1)(2,1,1)。其中 11 出现 22 次,22 出现 11 次。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页