JOI 国にはN 個の街があり,それらの間はM 本の双方向に通行可能な道路で結ばれている.国民は道路を通ってそれらの街を移動する.
JOI 国の国民には,お祭りが好きな人が多く,現在,K 個の街でお祭りが開催されており,非常に賑わっている.一方で,一部の国民はお祭りを騒がしいとして嫌い,お祭りにできるだけ近づきたくないと思っている.
そこで国王は,優秀なプログラマーであるあなたに,そのようなお祭りを嫌う国民のため,ある街からある街に移動するために,お祭りが開催されている街にどれだけ近づかずに移動することができるかを高速に調べることのできるプログラムの作成を依頼した.
道路の情報とお祭りが開催されている街の情報,およびQ 個のクエリ(出発する街Si と行きたい街Tiの組)が与えられる.各クエリi に対し,街Si から街Ti へのすべての経路のうち,お祭りまでの距離が最大となる経路の,お祭りまでの距離を求めるプログラムを作成せよ.ただし,ある経路のお祭りまでの距離とは,経路上の街からお祭りが開催されている街までの移動距離の最小値のことである.
2 ≤ N ≤ 100000 (= 105) JOI 国の街の個数
1 ≤ M ≤ 200000 (= 2 × 105) JOI 国の道路の本数
1 ≤ K ≤ N お祭りが開催されている街の個数
1 ≤ Q ≤ 100000 (= 105) クエリの個数
1 ≤ Li ≤ 1000 i 番目の道路の長さ
標準入力から以下のデータを読み込め.
標準出力に,全クエリへの答えをQ 行で出力せよ.すなわち,i 行目に,街Si から街Ti へのすべての経路のうち,お祭りまでの距離が最大となる経路の,お祭りまでの距離を表す整数を出力せよ.
採点用データのうち,
配点の10% 分については,Q = 1 を満たす.
配点の20% 分については,N ≤ 5000, Q ≤ 5000 を満たす.
配点の30% 分については,これら2 つの条件の少なくとも一方を満たす.また,これら2 つの条件の両方を満たすような採点用データはない.
6 6 2 3 1 2 5 2 3 4 2 4 6 3 5 9 4 5 3 5 6 7 1 6 3 4 5 2 1 4
7 5 0
6 つの街が6 本の道路で結ばれており,お祭りは街1, 6 の2 つの街で開催されている.クエリは以下の3 つである.
12 17 2 5 1 3 6 1 6 7 2 3 8 2 4 4 2 8 11 2 12 2 3 6 3 3 7 8 3 11 2 4 12 2 5 10 3 6 10 5 8 9 6 8 12 7 9 10 6 11 9 10 12 9 5 8 7 2 6 5 2 1 10 8 9 9 4
8 8 11 0 6
問題文と自動審判に使われるデータは、情報オリンピック日本委員会が作成し公開している問題文と採点用テストデータです。