Бинарные деревья

시간 제한1초메모리 제한1024 MB

요약
부분 트리를 옮기는 연산을 최대 N번 사용해 한 이진 트리를 다른 이진 트리로 바꾸는 과정을 구한다.
난이도

어려움10점 중 8점

유형
트리, DFS, 백트래킹, 구현
정답자
아직 제출이 없습니다

문제

Вчера Вадим нашёл на дороге бинарное дерево aa с корнем в 0 из NN вершин. Однако любимым у него является бинарное дерево bb с корнем в 0 из NN вершин. Поэтому он решил преобразовать дерево aa в дерево bb, используя следующую операцию:

  • Выбирается произвольная вершина vv, кроме корня. Её поддерево, включая саму вершину, переподвешивается за другую вершину uu, которая не принадлежит выбранному поддереву. Результатом должно получиться бинарное дерево с корнем в 0.

Вадим уверен, что с помощью подобной операции возможно привести найденное бинарное дерево в изоморфное его любимому, используя не более, чем NN преобразований. Помогите ему найти последовательность этих преобразований.

Напомним, что бинарное дерево --- это такое дерево, что каждая вершина является предком не более, чем 2 других вершин, у корня предка нет. Два корневых бинарных дерева называются изоморфными, если:

  1. Эти два дерева состоят из одной вершины;
  2. Количество детей у корней этих деревьев одинаковое, поддерево каждого ребёнка первого изоморфно поддереву какого-то ребёнка второго и поддерево каждого ребёнка второго изоморфно поддереву какого-то ребёнка первого.

입력

В первой строке дано целое число NN --- количество вершин в найденном и любимом деревьях (2≤N≤103)(2 \le N \le 10^3).

Во второй строке даны N−1N-1 целых чисел pa_ipa\_i --- предки вершин найденного дерева с номерами от 1 до N−1N-1 (0≤pa_i≤N−1)(0 \le pa\_i \le N - 1).

Во третьей строке даны N−1N-1 целых чисел pb_ipb\_i --- предки вершин любимого дерева с номерами от 1 до N−1N-1 (0≤pb_i≤N−1)(0 \le pb\_i \le N - 1).

Гарантируется, что данные деревья бинарные.

출력

В первой строке выведите целое число MM --- количество использованных операций (0≤M≤N)(0 \le M \le N).

В следующих MM строках выведите пары чисел vv и uu --- корень выбранного поддерева и вершина, за которую это поддерево подвешивается во время текущей операции (1≤v≤N−1,0≤u≤N−1)(1 \le v \le N - 1, 0 \le u \le N - 1). Вершина uu не может находиться в поддереве вершины vv. Полученное после каждой операции дерево должно быть бинарным.

Гарантируется, что ответ существует. Если ответов несколько, выведите любой из них.

예제2

  1. 예제 1

    입력
    4
    0 0 1
    0 1 2
    
    예상 출력
    1
    2 3
    
  2. 예제 2

    입력
    4
    2 0 0
    0 3 0
    
    예상 출력
    0