Logo
(追記) (追記ここまで)

22419번 - 連結 스페셜 저지다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB11000.000%

문제

$N$ 個の頂点からなるグラフがある。頂点は 1,ドル\ 2,\ ...,\ N$ と番号が振られている。$i$ (1ドル\leq i\leq N$) 番目の頂点は非負整数の重み $a_i$ をもつ。

はじめ、グラフには辺がない。あなたはグラフに無向辺を追加していくことができる。グラフに追加できる辺の候補は $M$ 本ある。辺は 1,ドル\ 2,\ ...,\ M$ と番号が振られている。$i$ (1ドル\leq i\leq M$) 番目の辺は、頂点 $x_i$ と $y_i$ を端点とし、非負整数の重み $z_i$ をもつ。

あなたの目標は、すべての頂点を連結にすることである。そのために、まだグラフに追加していない辺のうちちょうど 1ドル$ 本を選んでグラフに追加する、という操作を任意の回数行うことができる。ただし、どの瞬間においても次の条件が成り立っていなければならない。

  • グラフのどの連結成分についても、$(頂点の重みの総和)\geq(辺の重みの総和)$ である。

すべての頂点を連結にできるか判定せよ。できるならば、グラフに辺を追加していく方法を一つ出力せよ。

입력

入力は以下の形式で標準入力から与えられる。

$N$ $M$

$a_1$ $a_2$ $...$ $a_N$

$x_1$ $y_1$ $z_1$

$x_2$ $y_2$ $z_2$

$:$

$x_M$ $y_M$ $z_M$

출력

すべての頂点を連結にできないならば、-1 とだけ一行に出力せよ。

すべての頂点を連結にできるならば、グラフに辺を追加していく方法を一つ次のように出力せよ。

  • 1ドル$ 行目には、グラフに追加する辺の本数 $m$ (1ドル\leq m\leq M$) を出力せよ。
  • 2ドル$ 行目からの $m$ 行のうち $k$ 行目には、$k$ 番目にグラフに追加する辺の番号 $i_k$ (1ドル\leq i_k\leq M$) を出力せよ。

제한

  • 2ドル\leq N\leq10^5$
  • $a_i$ は整数,0ドル\leq a_i\leq10^9$
  • 1ドル\leq M\leq10^5$
  • 1ドル\leq x_i < y_i \le N$
  • $z_i$ は整数,0ドル\leq z_i\leq10^9$

예제 입력 1

4 3
50 0 0 50
1 2 0
2 3 100
3 4 0

예제 출력 1

3
1
3
2

多重辺が含まれている。

예제 입력 2

2 3
50 50
1 2 100
1 2 101
1 2 102

예제 출력 2

1
1

예제 입력 3

3 1
50 50 50
1 2 100

예제 출력 3

-1

すべての辺をグラフに追加しても、すべての頂点を連結にできない。

힌트

출처

Contest > ICPC Japanese Alumni Group > JAG Summer Camp > JAG Summer Camp 2015 Day 2 J번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /