問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
整数 N, M が与えられます。N 個の頂点と M 個の辺があるグラフを与えられます。
i (1 ≦ i ≦ M) 番目の辺は頂点 a_i と頂点 b_i を結んでいます。この辺は持っているスタンプの種類が c_i 個以下のときのみ通ることが出来ます。
また K 頂点 の集合 S が与えられます。S に属する頂点のそれぞれに異なるスタンプが置かれています。スタンプが置かれている頂点に到達するとスタンプを押すか否かを入れぶことが出来ます。
頂点 1 から頂点 N にたどり着くことができるスタンプの種類数の最大値を A とします。A 種類のスタンプを回収しながら頂点 1 から頂点 N にたどり着くまでに必要な移動回数の最小値を求めてください。
N M
a_1 b_1 c_1
a_2 b_2 c_2
...
a_M b_M c_M
K
S_1 S_2 ... S_K
答えを 2 行で出力してください。
1 行目には A を、2 行目には A 種類のスタンプを回収しながら頂点 1 から頂点 N にたどり着くまでに必要な移動回数を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
5 5
1 2 1
2 4 1
4 3 1
3 5 0
5 1 1
1
3
1
6
4 3
1 3 2
2 3 2
1 4 0
2
2 3
0
1