配点 : 500 点
問題文
黒板に 1 以上 M 以下の整数からなる集合 N 個 S1,S2,…,SN が書かれています。ここで、$S_i = \lbrace S_{i,1},S_{i,2},\dots,S_{i,A_i} \rbrace$ です。
あなたは、以下の操作を好きな回数(0 回でもよい)行うことが出来ます。
- 1 個以上の共通した要素を持つ 2 個の集合 X,Y を選ぶ。X,Y の 2 個を黒板から消し、新たに X∪Y を黒板に書く。
ここで、X∪Y とは X か Y の少なくともどちらかに含まれている要素のみからなる集合を意味します。
1 と M が両方含まれる集合を作ることが出来るか判定してください。出来るならば、必要な操作回数の最小値を求めてください。
制約
- 1≤N≤2×105
- 2≤M≤2×105
- 1≤∑i=1NAi≤5×105
- 1≤Si,j≤M(1≤i≤N,1≤j≤Ai)
- Si,j=Si,k(1≤j<k≤Ai)
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
N M
A1
S1,1 S1,2 … S1,A1
A2
S2,1 S2,2 … S2,A2
⋮
AN
SN,1 SN,2 … SN,AN
出力
1 と M が両方含まれる集合を作ることが出来るならば必要な操作回数の最小値を、出来ないならば -1
を出力せよ。
3 5
2
1 2
2
2 3
3
3 4 5
2
まず、{1,2} と {2,3} を選んで消し、{1,2,3} を追加します。
そして、{1,2,3} と {3,4,5} を選んで消し、{1,2,3,4,5} を追加します。
すると 2 回の操作で 1 と M を両方含む集合を作ることが出来ます。1 回の操作では目標を達成できないため、答えは 2 です。
1 2
2
1 2
0
始めから S1 が 1,M を共に含むため、必要な操作回数の最小値は 0 回です。
3 5
2
1 3
2
2 4
3
2 4 5
-1
4 8
3
1 3 5
2
1 2
3
2 4 7
4
4 6 7 8
2