#T2296. Prüfer 编码(Prüfer Code)

Prüfer 编码(Prüfer Code)

链接: https://cses.fi/problemset/task/1134

板块: Advanced Graph Problems

时限: 1.00 s | 内存: 512 MB

题目描述

一棵 nn 个节点的树的 Prüfer 编码 是一个由 n2n-2 个整数构成的序列,可以唯一确定树的结构。

编码的构造方法如下:只要树上至少还剩三个节点,就找出标号最小的叶子节点,将其唯一邻居的标号加入编码,并从树中删除该叶子。

给定一棵树的 Prüfer 编码,你的任务是重构出原始的树。

输入

第一行包含一个整数 nn:节点数量。节点编号为 1,2,,n1,2,\ldots,n

第二行包含 n2n-2 个整数:Prüfer 编码。

输出

输出 n1n-1 行,描述树的边。每行包含两个整数 aabb:表示节点 aabb 之间有一条边。边的输出顺序任意。

数据范围

3n21053 \le n \le 2 \cdot 10^5 1a,bn1 \le a,b \le n

样例输入

5
2 2 4

样例输出

1 2
2 3
2 4
4 5