AT_arc103_d [ARC103F] Distance Sums
Description
[problemUrl]: https://atcoder.jp/contests/arc103/tasks/arc103_d
長さ $ N $ の数列 $ D_1,\ D_2,\ ...,\ D_N $ が与えられます。 **$ D_i $ の値はすべて異なります**。 以下の条件を満たす $ N $ 頂点の木は存在するでしょうか?
- 各頂点には $ 1,2,...,\ N $ の番号が付けられている
- 各辺には $ 1,2,...,\ N-1 $ の番号が付けられていて、$ i $ 番目の辺は頂点 $ u_i $ と $ v_i $ をつないでいる
- 各頂点 $ i $ に対して、$ i $ から他の頂点までの距離の和は $ D_i $ である。ただし、各辺の長さは $ 1 $ であるものとする。
条件を満たす木が存在する場合、$ 1 $ つ構築してください。
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ D_1 $ $ D_2 $ $ : $ $ D_N $
Output Format
条件を満たす $ N $ 頂点の木が存在しない場合、`-1` と出力してください。
条件を満たす $ N $ 頂点の木が存在する場合、$ N-1 $ 行出力してください。 $ i $ 行目には $ u_i,v_i $ を空白区切りで出力してください。 複数の木が条件を満たす場合、どれを出力しても構いません。
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 100000 $
- $ 1\ \leq\ D_i\ \leq\ 10^{12} $
- $ D_i $ はすべて異なる
### Sample Explanation 1
次のような木が条件を満たします。 !\[\](https://img.atcoder.jp/arc103/92920696862ead4cacf3755c3c8135e0.png)