#ATarc069c. [ARC069E] Frequency

[ARC069E] Frequency

题目描述

すぬけ君喜欢制作数列。

现在有 11NN 编号的 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

输出

2
1

样例 2

输入

10
1 2 1 3 2 4 2 5 8 1

输出

10
7
0
4
0
3
0
2
3
0

说明/提示

限制条件

  • 1N1051 \leq N \leq 10^{5}
  • 1ai1091 \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 翻译