atcoder#ABC305E. [ABC305E] Art Gallery on Graph

[ABC305E] Art Gallery on Graph

配点 : 475475

問題文

頂点に 11 から NN の、辺に 11 から MM の番号がついた NN 頂点 MM 辺の単純無向グラフがあります。辺 ii は頂点 aia_i と頂点 bib_i を結んでいます。 11 から KK までの番号がついた KK 人の警備員が頂点上にいます。警備員 ii は頂点 pip_i にいて、体力は hih_i です。ここで全ての pip_i は互いに異なります。

頂点 vv が次の条件を満たす時、頂点 vv警備されている頂点 と呼びます。

  • 頂点 vv と頂点 pip_i の距離が hih_i 以下であるような警備員 ii が少なくとも 1 人存在する。

ここで、頂点 uu と頂点 vv の距離とは、頂点 uu と頂点 vv を結ぶパスに含まれる辺の本数の最小値のことをいいます。

グラフに含まれる頂点のうち、警備されている頂点を 小さい方から順に 全て列挙してください。

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • $0 \leq M \leq \min \left(\frac{N(N-1)}{2}, 2 \times 10^5 \right)$
  • 1KN1 \leq K \leq N
  • 1ai,biN1 \leq a_i, b_i \leq N
  • 入力で与えられるグラフは単純
  • 1piN1 \leq p_i \leq N
  • pip_i は互いに異なる
  • 1hiN1 \leq h_i \leq N
  • 入力で与えられる値は全て整数

入力

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

NN MM KK

a1a_1 b1b_1

a2a_2 b2b_2

\vdots

aMa_M bMb_M

p1p_1 h1h_1

p2p_2 h2h_2

\vdots

pKp_K hKh_K

出力

答えを以下の形式で出力せよ。ここで、

  • 警備されている頂点の個数を GG
  • 警備されている頂点の頂点番号を 昇順に 並べたものを v1,v2,,vGv_1, v_2, \dots, v_G

と定義する。

GG

v1v_1 v2v_2 \dots vGv_G

5 5 2
1 2
2 3
2 4
3 5
1 5
1 1
5 2
4
1 2 3 5

警備されている頂点は 1,2,3,51, 2, 3, 544 頂点です。 これらの頂点が警備されている頂点である理由は以下の通りです。

  • 頂点 11 と頂点 p1=1p_1 = 1 の距離は 00 で、これは h1=1h_1 = 1 以下です。よって頂点 11 は警備されている頂点です。
  • 頂点 22 と頂点 p1=1p_1 = 1 の距離は 11 で、これは h1=1h_1 = 1 以下です。よって頂点 22 は警備されている頂点です。
  • 頂点 33 と頂点 p2=5p_2 = 5 の距離は 11 で、これは h2=2h_2 = 2 以下です。よって頂点 33 は警備されている頂点です。
  • 頂点 55 と頂点 p1=1p_1 = 1 の距離は 11 で、これは h1=1h_1 = 1 以下です。よって頂点 55 は警備されている頂点です。
3 0 1
2 3
1
2

入力で与えられるグラフに辺がない場合もあります。

10 10 2
2 1
5 1
6 1
2 4
2 5
2 10
8 5
8 6
9 6
7 9
3 4
8 2
7
1 2 3 5 6 8 9