問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
整数 N, M が与えられます。N 個の頂点と M 個の辺があるグラフを与えられます。
i (1 ≦ i ≦ M) 番目の辺は頂点 a_i と頂点 b_i を結んでいます。
また、それぞれの頂点にはワープ装置が置かれており、頂点 i (1 ≦ i ≦ N) のワープ装置の識別番号は C_i です。同じ識別番号同士はワープ装置を利用して移動することが出来ます。
それぞれの頂点において、頂点 1 からたどり着くまでに必要な移動回数の最小値を求めてください。ただし、ワープ装置の利用も 1 回の移動として数え、たどり着かない場合は -1 とします。
N M
a_1 b_1
a_2 b_2
...
a_M b_M
C_1 C_2 ... C_N
答えを N 行で出力してください。
i (1 ≦ i ≦ N) 行目には頂点 i に移動するまでに必要な移動回数を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
6 2
1 2
3 6
1 2 1 2 1 3
0
1
1
2
1
2