#icpc2015summerday2j. [icpc2015summer_day2_j]連結
[icpc2015summer_day2_j]連結
Problem Statement
個の頂点からなるグラフがある。頂点は と番号が振られている。 () 番目の頂点は非負整数の重み をもつ。
はじめ、グラフには辺がない。あなたはグラフに無向辺を追加していくことができる。グラフに追加できる辺の候補は 本ある。辺は と番号が振られている。 () 番目の辺は、頂点 と を端点とし、非負整数の重み をもつ。
あなたの目標は、すべての頂点を連結にすることである。そのために、まだグラフに追加していない辺のうちちょうど 本を選んでグラフに追加する、という操作を任意の回数行うことができる。ただし、どの瞬間においても次の条件が成り立っていなければならない。
- グラフのどの連結成分についても、 である。
すべての頂点を連結にできるか判定せよ。できるならば、グラフに辺を追加していく方法を一つ出力せよ。
Constraints
- は整数,
- は整数,
Input Format
入力は以下の形式で標準入力から与えられる。
Output Format
すべての頂点を連結にできないならば、-1
とだけ一行に出力せよ。
すべての頂点を連結にできるならば、グラフに辺を追加していく方法を一つ次のように出力せよ。
- 行目には、グラフに追加する辺の本数 () を出力せよ。
- 行目からの 行のうち 行目には、 番目にグラフに追加する辺の番号 () を出力せよ。
Sample Input 1
4 3
50 0 0 50
1 2 0
2 3 100
3 4 0
Sample Output 1
3
1
3
2
番目の辺を追加するのは最後でなければならない。
Sample Input 2
2 3
50 50
1 2 100
1 2 101
1 2 102
Sample Output 2
1
1
多重辺が含まれている。
Sample Input 3
3 1
50 50 50
1 2 100
Sample Output 3
-1
すべての辺をグラフに追加しても、すべての頂点を連結にできない。