[AGC029F] Construction of a tree
题意翻译
给定 $n-1$ 个点集(全集为 $\{1,2,\ldots,n\}$),从每个集合内选两个点连边,使得最后形成一棵树。输出方案。
$n-1$ 条边按顺序对应这 $n-1$ 个集合输出。
$n \leq 10^5$,$\sum |S| \leq 2 \times 10^5$。
题目描述
[problemUrl]: https://atcoder.jp/contests/agc029/tasks/agc029_f
$ \{1,2,...,N\} $ の部分集合が $ N-1 $ 個与えられます。$ i $ 番目の集合を $ E_i $ とします。
各集合 $ E_i $ から相異なる $ 2 $ 要素 $ u_i,v_i $ を選び、$ \{1,2,..,N\} $ を頂点集合、 $ (u_1,v_1),(u_2,v_2),...,(u_{N-1},v_{N-1}) $ を辺集合とするような、$ N $ 頂点 $ N-1 $ 辺グラフ $ T $ を考えます。 うまく $ u_i,v_i $ を定めることにより、$ T $ を木にすることができるかどうか判定してください。 さらに可能な場合は、$ T $ が実際に木となるような $ (u_1,v_1),(u_2,v_2),...,(u_{N-1},v_{N-1}) $ を一つ求めてください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ c_1 $ $ w_{1,1} $ $ w_{1,2} $ $ ... $ $ w_{1,c_1} $ $ : $ $ c_{N-1} $ $ w_{N-1,1} $ $ w_{N-1,2} $ $ ... $ $ w_{N-1,c_{N-1}} $
ただし、$ c_i $ は $ E_i $ の要素数を指し、$ w_{i,1},...,w_{i,c_i} $ は $ E_i $ の $ c_i $ 個の元である。 また、$ 2\ \leq\ c_i\ \leq\ N $, $ 1\ \leq\ w_{i,j}\ \leq\ N $, $ w_{i,j}\ \neq\ w_{i,k} $ ($ 1\ \leq\ j\ <\ k\ \leq\ c_i $) である。
输出格式
$ T $ を木とすることができない場合は `-1` を出力せよ。そうでない場合は以下の形式に従って条件を満たす $ (u_i,v_i) $ を出力せよ。
> $ u_1 $ $ v_1 $ $ : $ $ u_{N-1} $ $ v_{N-1} $
输入输出样例
输入样例 #1
5
2 1 2
3 1 2 3
3 3 4 5
2 4 5
输出样例 #1
1 2
1 3
3 4
4 5
输入样例 #2
6
3 1 2 3
3 2 3 4
3 1 3 4
3 1 2 4
3 4 5 6
输出样例 #2
-1
输入样例 #3
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
输出样例 #3
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
说明
### 制約
- $ 2\ \leq\ N\ \leq\ 10^5 $
- $ E_i $ は $ \{1,2,..,N\} $ の部分集合である。
- $ |E_i|\ \geq\ 2 $
- $ |E_i| $ の和は $ 2\ \times\ 10^5 $ 以下である。