Codeforces Round 319 (Div. 1) |
---|
Закончено |
Деревом размера n называется неориентированный связный граф из n вершин без циклов.
Рассмотрим некоторое дерево из n вершин. Назовем дерево инвариантным относительно перестановки p = p1p2... pn, если для любых двух вершин дерева u и v выполняется утверждение: «Вершины u и v соединены ребром тогда и только тогда, когда вершины pu и pv соединены ребром».
Вам дана перестановка p размера n. Найдите какое-нибудь дерево размера n, инвариантное относительно данной перестановки.
В первой строке дано число n (1 ≤ n ≤ 105) — размер перестановки (совпадающий с размером искомого дерева).
Во второй строке дана сама перестановка pi (1 ≤ pi ≤ n).
Если искомого дерева не существует, то выведите «NO» (без кавычек).
Иначе выведите «YES», а затем выведите n - 1 строку, в каждой из которых находится по два целых числа — концы очередного ребра искомого дерева. Вершины нумеруются с единицы, порядок следования рёбер и порядок следования вершин внутри ребра не имеет значения.
Если решений несколько, выведите любое из них.
4
4 3 2 1
YES
4 1
4 2
1 3
3
3 1 2
NO
В первом тесте из условия, при применении к ребру перестановки, ребро (4, 1) перейдет в ребро (1, 4), ребро (4, 2) перейдет в ребро (1, 3), а ребро (1, 3) перейдет в ребро (4, 2). Все эти ребра есть в ответе.
Можно заметить, что во втором тесте из условия, ни одно дерево не подходит под ограничения.
Название |
---|