Codeforces Round 756 (Div. 3) |
---|
Закончено |
Поликарп выписал на доску массив $$$p$$$ длины $$$n$$$, который являлся перестановкой чисел от $$$1$$$ до $$$n$$$. Иными словами, в массиве $$$p$$$ каждое число от $$$1$$$ до $$$n$$$ встречалось ровно один раз.
Также он подготовил массив-ответ $$$a$$$, который изначально пустой (то есть имеет длину $$$0$$$).
После этого он сделал ровно $$$n$$$ действий. Каждое действие выглядело так:
Отметим, что на последнем действии массив $$$p$$$ имеет длину $$$1$$$ и его минимальный элемент является одновременно и крайним левым и крайним правым. В этом случае Поликарп может сам выбрать, какую роль играет минимальный элемент. Иными словами, этот элемент можно дописать в $$$a$$$ как слева, так и справа (на усмотрение Поликарпа).
Рассмотрим пример. Пусть $$$n=4$$$, $$$p=[3, 1, 4, 2]$$$. Изначально $$$a=[]$$$. Тогда:
Таким образом, возможным значением массива $$$a$$$ после $$$n$$$ действий может быть такое $$$a=[1,3,2,4]$$$.
Вам задано итоговое значение массива $$$a$$$. Найдите любое возможное начальное значение массива $$$p$$$, которое может привести к заданному массиву $$$a$$$, или определите, что решения не существует.
В первой строке входных данных записано целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных в тесте.
Каждый набор входных данных состоит из двух строк. В первой из них записано целое число $$$n$$$ ($$$1 \le n \le 2\cdot10^5$$$) — длина массива $$$a$$$. Во второй записаны $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le n$$$) — элементы массива $$$a$$$. Все элементы массива $$$a$$$ — различные числа.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных в тесте не превосходит $$$2\cdot10^5$$$.
Выведите $$$t$$$ строк, каждая из строк должна содержать ответ на соответствующий набор входных данных: числа $$$p_1, p_2, \dots, p_n$$$ — любое из возможных начальных значений массива $$$p$$$, которое приведёт к заданному во входных данных значению массива $$$a$$$. Все элементы $$$p$$$ — различные целые числа от $$$1$$$ до $$$n$$$. Таким образом, если существует несколько решений, то выведите любое. Если решения не существует, то в строку выведите -1.
4 4 1 3 2 4 1 1 5 1 3 5 4 2 3 3 2 1
3 1 4 2 1 -1 2 3 1
Первый набор входных данных примера разобран в основной части условия. Возможны и другие правильные ответы на этот набор входных данных.
Во втором наборе входных данных примера $$$n=1$$$. Таким образом, существует единственная перестановка, которая может быть ответом: $$$p=[1]$$$. В самом деле, это ответ на этот набор входных данных.
В третьем наборе входных данных примера какую бы вы перестановку не взяли в качестве $$$p$$$, после применения $$$n$$$ действий результат будет отличен от $$$a=[1, 3, 5, 4, 2]$$$.
Название |
---|