Олимпиадный тренинг

Задача . B. В конец со штрафом


Вам дан массив целых чисел \(a\) длиной \(n\). Вы можете выполнять следующую операцию ноль или более раз:

  • За одну операцию вы выбираете индекс \(i\) (\(1 \le i \le n\)), присваиваете \(a_i := a_i + 1\), и затем перемещаете \(a_i\) в конец массива (в самую правую позицию). Например, если \(a = [3, 5, 1, 9]\), и вы выбрали \(i = 2\), массив станет \([3, 1, 9, 6]\).

Найдите лексикографически наименьший\(^{\text{∗}}\) массив, который вы можете получить, выполняя эти операции.

\(^{\text{∗}}\)Массив \(c\) лексикографически меньше массива \(d\), если и только если выполняется одно из следующего:

  • \(c\) — префикс \(d\), но \(c \ne d\); или
  • в первой позиции, где \(c\) и \(d\) различны, в массиве \(c\) элемент меньше, чем соответствующий элемент в \(d\).
Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора содержит одно целое число \(n\) (\(1 \le n \le 10^5\)), длину массива.

Вторая строка содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)), элементы массива.

Гарантируется, что сумма значений \(n\) по всем наборам входных данных не превосходит \(10^5\).

Выходные данные

Для каждого набора входных данных выведите лексикографически наименьший массив, который вы можете получить.


Примеры
Входные данныеВыходные данные
1 3
3
2 1 3
5
1 2 2 1 4
6
1 2 3 6 5 4
1 3 3 
1 1 3 3 5 
1 2 3 4 6 7

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя