#3624. Construct Highway

0

Construct Highway

Construct Highway

题目描述

The Republic of Atcoder 有 NN 个城镇,编号为 11 到 NN,以及 MM 条高速公路,编号为 11 到 MM。
高速公路 ii 双向连接城镇 AiA_i 和城镇 BiB_i。 国王高桥将要建设 (N−M−1)(N-M-1) 条新高速公路,使得满足以下两个条件:

可以通过若干条高速公路在任意一对城镇之间往返 对于每个 i=1,…,Ni=1,\ldots,N,恰好有 DiD_i 条高速公路直接连接到城镇 ii

判断是否存在这样的建设方法。如果存在,输出其中一种方案。

输入格式

输入按下列格式由标准输入提供: NN MM D1D_1 …\ldots DND_N A1A_1 B1B_1 ⋮\vdots AMA_M BMB_M

输出格式

如果不存在满足条件的建设方法,输出 −1-1.
如果存在,输出 (N−M−1)(N-M-1) 行。第 ii 行应包含第 ii 条要建设的高速公路所连接的两个城镇的编号。

6 2
1 2 1 2 2 2
2 3
1 4
6 2
5 6
4 5
5 1
1 1 1 1 4
2 3
-1
4 0
3 3 3 3
-1

提示

2≤N≤2×1052 \leq N \leq 2\times 10^5 0≤M<N−10 \leq M \lt N-1 1≤Di≤N−11 \leq D_i \leq N-1 1≤Ai<Bi≤N1\leq A_i \lt B_i \leq N 如果 i≠ji\neq j,则 (Ai,Bi)≠(Aj,Bj)(A_i, B_i) \neq (A_j,B_j)。 输入中的所有数值均为整数。如样例输出所示,通过依次建设连接城镇 66 和 22、城镇 55 和 66、城镇 44 和 55 的高速公路可以满足条件。 另一种满足条件的例子是依次建设连接城镇 66 和 44、城镇 55 和 66、城镇 22 和 55 的高速公路。

标签: AtCoder|abc239F

来源

AtCoder|abc239F