think-cell Round 1
C
Lexicographically Largest
Codeforces
1700
原题
← BD1 →
翻译中…

Stack has an array $a$ of length $n$. He also has an empty set $S$. Note that $S$ is not a multiset.

翻译中…

He will do the following three-step operation exactly $n$ times:

翻译中…
  1. Select an index $i$ such that $1 \leq i \leq |a|$.
  2. Insert$^\dagger$ $a_i + i$ into $S$.
  3. Delete $a_i$ from $a$. Note that the indices of all elements to the right of $a_i$ will decrease by $1$.
翻译中…

Note that after $n$ operations, $a$ will be empty.

翻译中…

Stack will now construct a new array $b$ which is $S$ sorted in decreasing order. Formally, $b$ is an array of size $|S|$ where $b_i$ is the $i$-th largest element of $S$ for all $1 \leq i \leq |S|$.

翻译中…

Find the lexicographically largest$^\ddagger$ $b$ that Stack can make.

翻译中…

$^\dagger$ A set can only contain unique elements. Inserting an element that is already present in a set will not change the elements of the set.

翻译中…

$^\ddagger$ An array $p$ is lexicographically larger than a sequence $q$ if and only if one of the following holds:

翻译中…
  • $q$ is a prefix of $p$, but $p \ne q$; or
  • in the first position where $p$ and $q$ differ, the array $p$ has a larger element than the corresponding element in $q$.
翻译中…

Note that $[3,1,4,1,5]$ is lexicographically larger than $[3,1,3]$, $[\,]$, and $[3,1,4,1]$ but not $[3,1,4,1,5,9]$, $[3,1,4,1,5]$, and $[4]$.

翻译中…

Input

翻译中…

Each test contains multiple test cases. The first line contains a single integer $t$ ($1 \leq t \leq 10^4$) — the number of test cases. The description of the test cases follows.

翻译中…

The first line of each test case contains a single integer $n$ ($1 \leq n \leq 3 \cdot 10^5$) — the length of array $a$.

翻译中…

The second line of each test case contains $n$ integers $a_1,a_2,\ldots,a_{n}$ ($1 \leq a_i \leq 10^9$) — the elements of array $a$.

翻译中…

The sum of $n$ over all test cases does not exceed $3 \cdot 10^5$.

翻译中…

Output

翻译中…

For each test case, output the lexicographically largest $b$.

翻译中…

Note

翻译中…

In the first test case, select $i=1$ in the first operation, insert $a_1 + 1 = 3$ in $S$, and delete $a_1$ from $a$. After the first operation, $a$ becomes $a=[1]$. In the second operation, we select $i=1$ again and insert $a_1 + 1 = 2$ in $S$. Thus $S=\{2, 3\}$, and $b = [3, 2]$.

翻译中…

Note that if you select $i=2$ in the first operation, and $i=1$ in the second operation, $S=\{3\}$ as $3$ will be inserted twice, resulting in $b=[3]$.

翻译中…

As $[3,2]$ is lexicographically larger than $[3]$, we should select $i=1$ in the first operation.

翻译中…

In the second test case, in each operation, select the last element.

翻译中…

样例

Input #1
3
2
2 1
5
1 100 1000 1000000 1000000000
3
6 4 8
Output #1
3 2
1000000005 1000004 1003 102 2
11 7 6
InputCopy OutputCopy
题目信息
题号
1930C
所属比赛
时间限制
2 s
内存限制
256 MB
标签
二分
构造
数据结构
贪心
排序

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。