分数 : 2200 分
问题陈述
给定 N−1 个子集 {1,2,...,N}。设第 i 个集合为 Ei。
我们从每个集合 Ei 中选择两个不同的元素 ui 和 vi,并考虑一个图 T,该图有 N 个顶点和 N−1 条边,其顶点集为 {1,2,..,N},边集为 (u1,v1),(u2,v2),...,(uN−1,vN−1)。
确定是否可以通过适当地选择 ui 和 vi 使得 T 成为一棵树。
如果可以,进一步找出一组 (u1,v1),(u2,v2),...,(uN−1,vN−1) 使得 T 实际上是一棵树。
约束条件
- 2≤N≤105
- Ei 是 {1,2,..,N} 的一个子集。
- ∣Ei∣≥2
- 所有 ∣Ei∣ 的总和至多为 2×105。
输入
输入通过标准输入以以下格式给出:
N
c1 w1,1 w1,2 ... w1,c1
:
cN−1 wN−1,1 wN−1,2 ... wN−1,cN−1
这里,ci 表示 Ei 中的元素数量,wi,1,...,wi,ci 是 Ei 中的 ci 个元素。
这里,2≤ci≤N,1≤wi,j≤N,且 wi,j=wi,k (1≤j<k≤ci)。
输出
如果 T 不能成为一棵树,打印 -1
;否则,打印满足条件的 (ui,vi) 的选择,格式如下:
u1 v1
:
uN−1 vN−1
5
2 1 2
3 1 2 3
3 3 4 5
2 4 5
1 2
1 3
3 4
4 5
例如,如果选择如下:
- 从 E1 中选择 (1,2)。
- 从 E2 中选择 (1,3)。
- 从 E3 中选择 (3,4)。
- 从 E4 中选择 (4,5)。
6
3 1 2 3
3 2 3 4
3 1 3 4
3 1 2 4
3 4 5 6
-1
10
5 1 2 3 4 5
5 2 3 4 5 6
5 3 4 5 6 7
5 4 5 6 7 8
5 5 6 7 8 9
5 6 7 8 9 10
5 7 8 9 10 1
5 8 9 10 1 2
5 9 10 1 2 3
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10