eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Відновлення перестановки

Відновлення перестановки

Сьогодні у школі Кристофер вивчав послідовності та перестановки. Нагадаємо, що \textit{перестановкою} чисел від \textbf{1} до \textbf{n} називається послідовність \textbf{a_1}, ..., \textbf{a_n}, у яку кожне з вказаних чисел входить рівно один раз. Особливо йому сподобались наступні означення: \begin{itemize} \item \textit{Спуском} у позиції \textbf{i} у перестановці <\textbf{a_1}, \textbf{a_2}, ..., \textbf{a_n}> називають таку ситуацію, що \textbf{a_i} > \textbf{a_\{i+1\}}; \item \textit{Нерухомою точкою} у позиції \textbf{i} у перестановці <\textbf{a_1}, \textbf{a_2}, ..., \textbf{a_n}> називають такий елемент \textbf{a_i}, що \textbf{a_i} = \textbf{i}. \end{itemize} Взнавши ці означення, він придумав власну перестановку і назвав її \textit{перестановкою Робіна}. Назвемо перестановку \textbf{A} = <\textbf{a_1}, \textbf{a_2}, ..., \textbf{a_2n}> з \textbf{2n} натуральних чисел від \textbf{1} до \textbf{2n} \textit{перестановкою Робіна}, якщо виконані наступні умови: \begin{itemize} \item \textbf{A} має рівно \textbf{n} спусків, і усі її спуски знаходяться на непарних позиціях (тобтоь \textbf{a_\{2i-1\}} > \textbf{a_2i} < \textbf{a_\{2i+1\}} для усіх \textbf{i}); \item \textbf{A} має рівно \textbf{n} нерухомих точок. \end{itemize} Наприклад, перестановка <\textbf{3}, \textbf{2}, \textbf{6}, \textbf{4}, \textbf{5}, \textbf{1}> є \textit{перестановкою Робіна}. Кристофер вирішив поділитись своїм відкриттям з Кроликом. Взнавши про \textit{перестановку Робіна}, Кролик придумав наступне перетворення: видалимо усі нерухомі точки у послідовності і перетворимо вектор, що залишився, у перестановку, замінивши числа, що залишились, на кількість елементів, які не перевищують його у перестановці. Наприклад, перетворення перестановки <\textbf{3}, \textbf{2}, \textbf{6}, \textbf{4}, \textbf{5}, \textbf{1}> дає <\textbf{3}, \textbf{2}, \textbf{6}, \textbf{4}, \textbf{5}, \textbf{1}> → <\textbf{3}, \textbf{6}, \textbf{1}> → <\textbf{2}, \textbf{3}, \textbf{1}>. Кристофер тепер хоче отримати з перетвореної перестановки \textit{перестановку Робіна}. \InputFile У першому рядку вхідного файлу задано \textbf{n} - число елементів у перетвореній перестановці (\textbf{1} ≤ \textbf{n} ≤ \textbf{100000}). У другому рядку вхідного файлу задано \textbf{n} натуральних чисел - перетворена перестановка. \OutputFile Якщо розв'язків немає, вивести \textbf{-1} у першому рядку вихідного файлу. Якщо існує \textit{перестановка Робіна}, то вивести її. Якщо є декілька розв'язків, то вивести довільну \textit{перестановку Робіна}.
Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
3
2 3 1
Вихідні дані #1
3 2 6 4 5 1
Автор А.Станкевич, М.Ведерніков