Бинарные деревья
문제
Вчера Вадим нашёл на дороге бинарное дерево с корнем в 0 из вершин. Однако любимым у него является бинарное дерево с корнем в 0 из вершин. Поэтому он решил преобразовать дерево в дерево , используя следующую операцию:
- Выбирается произвольная вершина , кроме корня. Её поддерево, включая саму вершину, переподвешивается за другую вершину , которая не принадлежит выбранному поддереву. Результатом должно получиться бинарное дерево с корнем в 0.
Вадим уверен, что с помощью подобной операции возможно привести найденное бинарное дерево в изоморфное его любимому, используя не более, чем преобразований. Помогите ему найти последовательность этих преобразований.
Напомним, что бинарное дерево --- это такое дерево, что каждая вершина является предком не более, чем 2 других вершин, у корня предка нет. Два корневых бинарных дерева называются изоморфными, если:
- Эти два дерева состоят из одной вершины;
- Количество детей у корней этих деревьев одинаковое, поддерево каждого ребёнка первого изоморфно поддереву какого-то ребёнка второго и поддерево каждого ребёнка второго изоморфно поддереву какого-то ребёнка первого.
입력
В первой строке дано целое число --- количество вершин в найденном и любимом деревьях .
Во второй строке даны целых чисел --- предки вершин найденного дерева с номерами от 1 до .
Во третьей строке даны целых чисел --- предки вершин любимого дерева с номерами от 1 до .
Гарантируется, что данные деревья бинарные.
출력
В первой строке выведите целое число --- количество использованных операций .
В следующих строках выведите пары чисел и --- корень выбранного поддерева и вершина, за которую это поддерево подвешивается во время текущей операции . Вершина не может находиться в поддереве вершины . Полученное после каждой операции дерево должно быть бинарным.
Гарантируется, что ответ существует. Если ответов несколько, выведите любой из них.
예제
예제 1
4 0 0 1 0 1 2
1 2 3
예제 2
4 2 0 0 0 3 0
0