#ABC239F. 修建高速公路

修建高速公路

修建高速公路

题目描述

AtCoder 共和国有 NN 个城镇,编号为 11 到 NN,以及 MM 条高速公路,编号为 11 到 MM。

高速公路 ii 双向连接城镇 AiA_i 和城镇 BiB_i。

高桥国王将新建 (N−M−1)(N-M-1) 条高速公路,使得以下两个条件得到满足:

  • 任意两个城镇之间都可以通过若干条高速公路互相到达。
  • 对于每个 i=1,…,Ni=1,\ldots,N,与城镇 ii 直接相连的高速公路恰好有 DiD_i 条。

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

输入格式

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

N M
D_1 … D_N
A_1 B_1
⋮
A_M B_M

输出格式

如果不存在满足条件的修建方案,输出 -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

如样例输出所示,可以分别通过修建连接城镇 66 和 22、城镇 55 和 66、城镇 44 和 55 的高速公路来满足条件。

另一种满足条件的方案是分别修建连接城镇 66 和 44、城镇 55 和 66、城镇 22 和 55 的高速公路。

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)。
  • 输入中的所有值均为整数。
难度 提高+/省选
通过率 —
尝试 0
通过 0
ID
2390
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签