200692: [AtCoder]ARC069 E - Frequency

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $700$ points

Problem Statement

Snuke loves constructing integer sequences.

There are $N$ piles of stones, numbered $1$ through $N$. The pile numbered $i$ consists of $a_i$ stones.

Snuke will construct an integer sequence $s$ of length $Σa_i$, as follows:

  1. Among the piles with the largest number of stones remaining, let $x$ be the index of the pile with the smallest index. Append $x$ to the end of $s$.
  2. Select a pile with one or more stones remaining, and remove a stone from that pile.
  3. If there is a pile with one or more stones remaining, go back to step 1. Otherwise, terminate the process.

We are interested in the lexicographically smallest sequence that can be constructed. For each of the integers $1,2,3,...,N$, how many times does it occur in the lexicographically smallest sequence?

Constraints

  • $1 ≤ N ≤ 10^{5}$
  • $1 ≤ a_i ≤ 10^{9}$

Input

The input is given from Standard Input in the following format:

$N$
$a_1$ $a_2$ $...$ $a_{N}$

Output

Print $N$ lines. The $i$-th line should contain the number of the occurrences of the integer $i$ in the lexicographically smallest sequence that can be constructed.


Sample Input 1

2
1 2

Sample Output 1

2
1

The lexicographically smallest sequence is constructed as follows:

  • Since the pile with the largest number of stones remaining is pile $2$, append $2$ to the end of $s$. Then, remove a stone from pile $2$.
  • Since the piles with the largest number of stones remaining are pile $1$ and $2$, append $1$ to the end of $s$ (we take the smallest index). Then, remove a stone from pile $2$.
  • Since the pile with the largest number of stones remaining is pile $1$, append $1$ to the end of $s$. Then, remove a stone from pile $1$.

The resulting sequence is $(2,1,1)$. In this sequence, $1$ occurs twice, and $2$ occurs once.


Sample Input 2

10
1 2 1 3 2 4 2 5 8 1

Sample Output 2

10
7
0
4
0
3
0
2
3
0

Input

题意翻译

给定 $N$ 堆石子,第 $i$ 堆大小为 $A_i$。 现在你需要构造一个长度 $\sum A_i$ 的序列 $S$,构造流程如下: * 找到当前石子数量最多的那堆石子,如果有多个则取最前面哪个,将下标记作 $P$,将 $P$ 写在 $S$ 末尾。 * 选择一堆石子,拿一个石子出来。 * 如果还有石子剩余,重复这个流程。 现在需要你最小化 $S$ 的字典序,输出 $1 \sim n$ 在 $S$ 中出现了多少次。

加入题单

上一题 下一题 算法标签: