Вчера Вадим нашёл на дороге бинарное дерево
a с корнем в 0 из
N вершин. Однако любимым у него является бинарное дерево
b с корнем в 0 из
N вершин. Поэтому он решил преобразовать дерево
a в дерево
b, используя следующую операцию:
-
Выбирается произвольная вершина v, кроме корня. Её поддерево, включая саму вершину, переподвешивается за другую вершину u, которая не принадлежит выбранному поддереву. Результатом должно получиться бинарное дерево с корнем в 0.
Вадим уверен, что с помощью подобной операции возможно привести найденное бинарное дерево в изоморфное его любимому, используя не более чем N преобразований. Помогите ему найти последовательность этих преобразований.
Напомним, что
бинарное дерево — это такое дерево, что каждая вершина является предком не более чем 2 других вершин, у корня предка нет. Два корневых бинарных дерева называются
изоморфными, если:
-
Эти два дерева состоят из одной вершины;
-
Количество детей у корней этих деревьев одинаковое, поддерево каждого ребёнка первого изоморфно поддереву какого-то ребёнка второго и поддерево каждого ребёнка второго изоморфно поддереву какого-то ребёнка первого.
Исходные данные
В первой строке дано целое число N — количество вершин в найденном и любимом деревьях (2 ≤ N ≤ 103).
Во второй строке даны N−1 целых чисел pai — предки вершин найденного дерева с номерами от 1 до N−1 (0 ≤ pai ≤ N − 1).
Во третьей строке даны N−1 целых чисел pbi — предки вершин любимого дерева с номерами от 1 до N−1 (0 ≤ pbi ≤ N − 1).
Гарантируется, что данные деревья бинарные.
Результат
В первой строке выведите целое число M — количество использованных операций (0 ≤ M ≤ N).
В следующих M строках выведите пары чисел v и u — корень выбранного поддерева и вершина, за которую это поддерево подвешивается во время текущей операции (1 ≤ v ≤ N − 1, 0 ≤ u ≤ N − 1). Вершина u не может находиться в поддереве вершины v. Полученное после каждой операции дерево должно быть бинарным.
Гарантируется, что ответ существует. Если ответов несколько, выведите любой из них.
Примеры
исходные данные | результат |
---|
4
0 0 1
0 1 2
| 1
2 3
|
4
2 0 0
0 3 0
| 2
3 1
1 0
|
Автор задачи: Вадим Баринов
Источник задачи: Квалификационный тур Уральского регионального чемпионата ICPC 2023