#abc143e. [abc143_e]Travel by Car

[abc143_e]Travel by Car

問題文

11 から NN までの番号がついた NN 個の町と MM 本の道があります。ii 本目の道は町 AiA_i と町 BiB_i を双方向に結び、その長さは CiC_i です。

高橋君はこれらの町の間を、道を車で通行することで移動します。車の燃料タンクの容量は LL リットルであり、距離 11 を移動する度に燃料を 11 リットル消費します。移動中に町を訪れた場合、燃料をタンクが一杯になるまで補給することが出来ます (補給しないという選択も可能です)。道の途中で燃料が尽きるような移動は出来ません。

以下の QQ 個のクエリに答えてください。

  • はじめ、車の燃料タンクは一杯です。町 sis_i から町 tit_i へ移動するとき、最小で何回途中で燃料を補給する必要があるかを答えてください。町 tit_i まで移動出来ない場合は 1−1 を出力してください。

制約

  • 入力は全て整数
  • 2N3002 ≤ N ≤ 300
  • 0MfracN(N1)20 ≤ M ≤ \\frac{N(N-1)}{2}
  • 1leqLleq1091 \\leq L \\leq 10^9
  • 1Ai,BiN1 ≤ A_i, B_i ≤ N
  • AineqBiA_i \\neq B_i
  • $\\left(A_i, B_i\\right) \\neq \\left(A_j, B_j\\right)$ ( ineqji \\neq j のとき)
  • $\\left(A_i, B_i\\right) \\neq \\left(B_j, A_j\\right)$ ( ineqji \\neq j のとき)
  • 1leqCileq1091 \\leq C_i \\leq 10^9
  • 1QNleft(N1right)1 ≤ Q ≤ N\\left(N-1\\right)
  • 1si,tiN1 ≤ s_i, t_i ≤ N
  • sineqtis_i \\neq t_i
  • $\\left(s_i, t_i\\right) \\neq \\left(s_j, t_j\\right)$ ( ineqji \\neq j のとき)

入力

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

NN MM LL A1A_1 B1B_1 C1C_1 :: AMA_M BMB_M CMC_M QQ s1s_1 t1t_1 :: sQs_Q tQt_Q

出力

QQ 行出力せよ。

ii 行目には、町 sis_i から町 tit_i へ移動するとき、最小で何回燃料を補給する必要があるかを出力せよ。町 tit_i まで移動出来ない場合は 1−1 を出力せよ。


入力例 1

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

出力例 1

0
1

33 から町 22 へ移動するときは、 22 本目の道を使えば、途中で燃料を補給することなく町 22 へ到着することが出来ます。

11 から町 33 へ移動するときは、まず 11 本目の道を使って町 22 へ移動し、燃料をタンク一杯まで補給し、 22 本目の道を使うことにより、町 33 へ到着することが出来ます。


入力例 2

4 0 1
1
2 1

出力例 2

-1

道が無いこともあります。


入力例 3

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

出力例 3

0
0
1
2
0
0
1
2
0
0
0
1
1
1
0
0
2
2
1
0