問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
整数 N, M, K が与えられます。N 個の頂点と M 個の辺があるグラフを与えられます。
i (1 ≦ i ≦ M) 番目の辺は頂点 a_i と頂点 b_i を結んでいてコストが c_i です。また、その辺を使った移動前のコストを K で割った余りが d_i のときにのみ通ることが出来ます。
現在コスト 0 で頂点 1 にいます。それぞれの頂点において移動するまでに必要な移動回数の最小値を求めてください。ただしたどり着くことが出来ない場合は -1 とします。
N M K
a_1 b_1 c_1 d_1
a_2 b_2 c_2 d_2
...
a_M b_M c_M d_M
答えを N 行で出力してください。
i (1 ≦ i ≦ N) 行目には頂点 i に移動するまでに必要な移動回数を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
5 5 10
1 2 2 0
2 3 2 2
3 4 4 4
4 2 2 8
1 5 0 2
0
1
2
3
6