AT_arc103_d [ARC103F] Distance Sums

题目描述

[problemUrl]: https://atcoder.jp/contests/arc103/tasks/arc103_d 给定一个长度为 $N$ 的数列 $D_1, D_2, \ldots, D_N$。所有 $D_i$ 的值都互不相同。请问是否存在一个具有 $N$ 个顶点的树满足以下条件? - 每个顶点都标有 $1, 2, \ldots, N$ 的编号 - 每条边都标有 $1, 2, \ldots, N-1$ 的编号,第 $i$ 条边连接顶点 $u_i$ 和 $v_i$ - 对于每个顶点 $i$,从 $i$ 到其他所有顶点的距离之和为 $D_i$。这里,每条边的长度都视为 $1$。 如果存在满足条件的树,请构造出其中一个。

输入格式

输入以以下格式通过标准输入给出。 > $ N $ $ D_1 $ $ D_2 $ $ : $ $ D_N $

输出格式

如果不存在满足条件的树,输出 `-1`。 如果存在满足条件的树,输出 $N-1$ 行。第 $i$ 行输出 $u_i, v_i$,以空格分隔。如果存在多个满足条件的树,输出其中任何一个即可。

说明/提示

### 数据范围 - $ 2\ \leq\ N\ \leq\ 100000 $ - $ 1\ \leq\ D_i\ \leq\ 10^{12} $ - $ D_i $ 互不相同 ### 样例解释 1 存在如下满足条件的树: ![](https://img.atcoder.jp/arc103/92920696862ead4cacf3755c3c8135e0.png)