트리 재구성하기
시간 제한1초메모리 제한1024 MB
최대 2N번의 간선 이동 시행으로 트리 A를 트리 B로 바꾸고 시행 순서를 출력한다.
문제
정점의 개수가 인 두 트리 , 가 주어진다. 다음의 시행을 번 이하로 하여 를 와 똑같이 만들어 보자.
- 의 서로 다른 세 정점 , , 를 고른다. 와 , 와 는 각각 간선으로 연결되어 있어야 한다.
- 와 사이의 간선을 제거하고 와 사이에 간선을 추가한다.
번 이하의 시행으로 와 를 똑같이 만드는 것이 항상 가능함을 증명할 수 있다. 시행의 횟수를 최소화할 필요가 없음에 유의하라.
입력
첫 번째 줄에 트리의 정점 개수 이 주어진다.
다음 개의 줄에 트리 의 두 정점 , 가 공백으로 구분되어 주어진다. 와 는 간선으로 연결되어 있다.
다음 개의 줄에 트리 의 두 정점 , 가 공백으로 구분되어 주어진다. 와 는 간선으로 연결되어 있다.
출력
첫 번째 줄에 시행 횟수 를 출력한다. 는 이하인 음이 아닌 정수여야 한다.
다음 개의 줄에 각 시행에서 고른 의 정점 , , 를 공백으로 구분하여 출력한다. 각 시행을 순서대로 출력해야 한다.
힌트
두 트리 와 가 같다는 것은 의 번 정점과 번 정점을 연결하는 간선이 존재할 때, 에도 번 정점과 번 정점을 연결하는 간선이 존재함을 의미한다.