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

Задача . B. Бесси и MEX


У фермера Джона есть перестановка \(p_1, p_2, \ldots, p_n\), в которой каждое целое число от \(0\) до \(n-1\) встречается ровно один раз. Он дает Бесси массив \(a\) длины \(n\) и просит ее восстановить \(p\) на основе \(a\).

Массив \(a\) строится так: \(a_i\) = \(\texttt{MEX}(p_1, p_2, \ldots, p_i) - p_i\), где \(\texttt{MEX}\) массива — это минимальное целое неотрицательное число, которое не встречается в этом массиве. Например, \(\texttt{MEX}(1, 2, 3) = 0\), а \(\texttt{MEX}(3, 1, 0) = 2\).

Помогите Бесси построить любую перестановку \(p\), удовлетворяющую массиву \(a\). Гарантируется, что вам даются входные данные, для которых существует хотя бы одна допустимая перестановка \(p\). Если существует несколько возможных \(p\), вы можете вывести любую из них.

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

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

Первая строка каждого набора входных данных содержит целое число \(n\) (\(1 \leq n \leq 2 \cdot 10^5\)) — длину \(p\) и \(a\).

Вторая строка каждого набора входных данных содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(-n \leq a_i \leq n\)) — элементы массива \(a\).

Гарантируется, что существует хотя бы одна подходящая перестановка \(p\) для каждого данного набора данных.

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

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

Для каждого набора входных данных выведите на отдельной строке \(n\) целых чисел, являющихся элементами \(p\).

Если существует несколько решений, выведите любое из них.

Примечание

В первом наборе входных данных \(p = [0, 1, 4, 2, 3]\) является одним из возможных ответов.

Для этой перестановки \(a\) будет вычисляться так: \(a_1 = \texttt{MEX}(0) - 0 = 1\), \(a_2 = \texttt{MEX}(0, 1) - 1 = 1\), \(a_3 = \texttt{MEX}(0, 1, 4) - 4 = -2\), \(a_4 = \texttt{MEX}(0, 1, 4, 2) - 2 = 1\), \(a_5 = \texttt{MEX}(0, 1, 4, 2, 3) - 3 = 2\).

Таким образом, как и требовалось, \(a\) будет равняться \([1, 1, -2, 1, 2]\).


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

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

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