#arc103d. [arc103_d]Distance Sums

[arc103_d]Distance Sums

题目描述

给定一个长度为NN的序列 D1,D2,...,DND_1, D_2, ..., D_N。是否存在一个满足以下条件的包含NN个顶点的树?

  • 顶点编号为1,2,...,N1,2,...,N
  • 边的编号为1,2,...,N11,2,...,N-1,第ii条边连接顶点uiu_iviv_i
  • 对于每个顶点ii,假设每条边的长度为11,顶点 ii 到其他顶点的距离之和为DiD_i

如果存在这样的树,请构造一棵满足条件的树。

约束条件

  • 2N1000002 \leq N \leq 100000
  • 1Di10121 \leq D_i \leq 10^{12}
  • DiD_i是互不相同的。

输入

输入以以下格式从标准输入给出:

NN

D1D_1

D2D_2

...

DND_N

输出

如果不存在满足条件的包含NN个顶点的树,则输出-1

如果存在满足条件的包含NN个顶点的树,则输出N1N-1行。每行输出一个边,用顶点uiu_iviv_i表示,中间用一个空格隔开。如果有多棵满足条件的树,任何一棵都会被接受。


示例输入1

7
10
15
13
18
11
14
19

示例输出1

1 2
1 3
1 5
3 4
5 6
6 7

下图所示的树满足条件。


示例输入2

2
1
2

示例输出2

-1

示例输入3

15
57
62
47
45
42
74
90
75
54
50
66
63
77
87
51

示例输出3

1 10
1 11
2 8
2 15
3 5
3 9
4 5
4 10
5 15
6 12
6 14
7 13
9 12
11 13