문제 152
가장 큰 잎의 프뤼퍼 수열
정점이 $N$개인 트리가 있다. 정점의 번호는 $1$부터 $N$까지이다. $N \ge 3$이면 다음 과정을 $N-2$번 반복한다.
- 번호가 가장 큰 잎을 선택한다.
- 그 잎과 인접한 정점의 번호를 기록하고 잎을 삭제한다.
기록한 번호를 순서대로 나열한 정수 수열 $A$가 주어진다. $A$의 길이는 $\max(0, N-2)$이고, 원소의 인덱스는 $1$부터 시작한다. $N \le 2$이면 수열은 비어 있다. 이 수열로 원래 트리의 간선을 복원해 보자.
입력
첫 번째 줄에 테스트 케이스의 수를 의미하는 정수 $Q$가 주어진다. $(1 \le Q \le 100)$
각 테스트 케이스의 첫 번째 줄에 정수 $N$이 주어진다. $(1 \le N \le 100\,000)$
두 번째 줄에 수열 $A$의 원소가 공백으로 구분되어 주어진다. $(1 \le A_i \le N)$ $N \le 2$이면 빈 줄이 주어진다.
전체 테스트 케이스에서 $N$의 합은 $200\,000$ 이하이다.
출력
각 테스트 케이스마다 간선의 수 $N-1$을 한 줄에 출력한다. 그다음 줄부터 $N-1$개의 줄에 걸쳐 각 간선의 양 끝 정점 번호를 작은 번호부터 공백으로 구분하여 출력한다. 간선은 양 끝 정점 번호의 순서쌍을 기준으로 사전순으로 출력한다.
예제 입력 1
3 1 2 3 2
예제 출력 1
0 1 1 2 2 1 2 2 3