think-cell Round 1 |
---|
Закончено |
У Стека есть массив $$$a$$$ длины $$$n$$$. У него также есть пустое множество $$$S$$$. Заметим, что $$$S$$$ не является мультимножеством.
Он выполнит следующую трехшаговую операцию ровно $$$n$$$ раз:
Обратите внимание, что после $$$n$$$ операций массив $$$a$$$ станет пустым.
После Стек построит новый массив $$$b$$$, который является $$$S$$$, отсортированным в порядке убывания. Формально, $$$b$$$ — это массив длины $$$|S|$$$, где $$$b_i$$$ — $$$i$$$-й наибольший элемент $$$S$$$ для всех $$$1 \leq i \leq |S|$$$.
Найдите лексикографически наибольший$$$^\ddagger$$$ массив $$$b$$$, который может получить Стек.
$$$^\dagger$$$ Множество может содержать только уникальные элементы. Вставка элемента, который уже присутствует в множестве, не изменит множество.
$$$^\ddagger$$$ Массив $$$p$$$ лексикографически больше массива $$$q$$$ тогда и только тогда, когда выполняется одно из следующих условий:
Заметим, что $$$[3,1,4,1,5]$$$ лексикографически больше, чем $$$[3,1,3]$$$, $$$[\,]$$$ и $$$[3,1,4,1]$$$, но не больше $$$[3,1,4,1,5,9]$$$, $$$[3,1,4,1,5]$$$ и $$$[4]$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$1 \leq n \leq 3 \cdot 10^5$$$) — длину массивов $$$a$$$.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$a_1,a_2,\ldots,a_{n}$$$ ($$$1 \leq a_i \leq 10^9$$$) — элементы массива $$$a$$$.
Сумма $$$n$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$.
Для каждого набора входных данных выведите лексикографически наибольшее значение $$$b$$$.
322 151 100 1000 1000000 100000000036 4 8
3 2 1000000005 1000004 1003 102 2 11 7 6
В первом наборе входных данных выберите $$$i=1$$$ в первой операции, вставьте $$$a_1 + 1 = 3$$$ в $$$S$$$ и удалите $$$a_1$$$ из $$$a$$$. После первой операции массив $$$a$$$ станет $$$a=[1]$$$. Во второй операции снова выберите $$$i=1$$$ и вставьте $$$a_1 + 1 = 2$$$ в $$$S$$$. Таким образом, $$$S=\{2, 3\}$$$, и $$$b = [3, 2]$$$.
Обратите внимание, что если в первой операции выбрать $$$i=2$$$, а во второй выбрать $$$i=1$$$, то $$$S=\{3\}$$$, так как $$$3$$$ будет вставлено дважды, в результате чего $$$b=[3]$$$.
Поскольку $$$[3,2]$$$ лексикографически больше $$$[3]$$$, то в первой операции следует выбрать $$$i=1$$$.
Во втором примере в каждой операции нужно выбирать последний элемент.
Название |
---|