Codeforces Round 793 (Div. 2) |
---|
Закончено |
У Алисы есть перестановка $$$p$$$ чисел от $$$1$$$ до $$$n$$$. Алиса может поменять местами пару $$$(x, y)$$$, что означает поменять местами элементы в позициях $$$x$$$ и $$$y$$$ в $$$p$$$ (то есть поменять местами $$$p_x$$$ и $$$p_y$$$). Алиса недавно изучила свой первый алгоритм сортировки, поэтому она решила отсортировать свою перестановку за минимальное количество возможных обменов. Она записала на листе бумаги все обмены в том порядке, в котором она их выполняла для сортировки перестановки.
Например,
К сожалению, Боб переставил местами обмены в последовательности, выписанной Алисой.
Вам дана перестановка Алисы $$$p$$$ и обмены, сделанные Алисой в произвольном порядке. Можете ли вы восстановить правильную последовательность обменов, которая сортирует перестановку $$$p$$$? Поскольку Алиса написала правильные обмены до того, как Боб их перемешал, гарантируется, что существует некоторый порядок обменов, который сортирует перестановку.
Первая строка содержит $$$2$$$ целых числа $$$n$$$ и $$$m$$$ $$$(2 \le n \le 2 \cdot 10^5, 1 \le m \le n - 1)$$$ — размер перестановки и минимальное количество обменов, необходимое для сортировки перестановки.
Следующая строка содержит $$$n$$$ целых чисел $$$p_1, p_2, ..., p_n$$$ ($$$1 \le p_i \le n$$$, все $$$p_i$$$ различны) — элементы $$$p$$$. Гарантируется, что $$$p$$$ образует перестановку.
Далее следуют $$$m$$$ строк. В $$$i$$$-й из следующих $$$m$$$ строк содержатся два целых числа $$$x_i$$$ и $$$y_i$$$ — обозначающих $$$i$$$-й обмен $$$(x_i, y_i)$$$.
Гарантируется, что можно отсортировать $$$p$$$ с этими $$$m$$$ обменами и что нет способа отсортировать $$$p$$$ с менее чем $$$m$$$ обменами.
Выведите перестановку $$$m$$$ целых чисел — правильный порядок обменов, выписанный Алисой, который сортирует перестановку $$$p$$$. Для лучшего понимания обратитесь к объяснению примера.
В случае нескольких возможных ответов выведите любой.
4 3 2 3 4 1 1 4 2 1 1 3
2 3 1
6 4 6 5 1 3 2 4 3 1 2 5 6 3 6 4
4 1 3 2
В первом примере $$$p = [2, 3, 4, 1]$$$, $$$m = 3$$$ и заданы обмены $$$[(1, 4), (2, 1), (1, 3)]$$$.
Существует только один правильный порядок обмена, а именно $$$[2, 3, 1]$$$.
Во втором примере $$$p = [6, 5, 1, 3, 2, 4]$$$, $$$m = 4$$$ и заданные обмены $$$[(3, 1), (2, 5), (6, 3), (6, 4)]$$$.
Один из возможных правильных порядков обмена — $$$[4, 2, 1, 3]$$$.
Возможны и другие ответы, например, $$$[1, 2, 4, 3]$$$.
Название |
---|