JOI 国にはN 個の町があり,それらの間はM 本の双方向に通行可能な道路で結ばれている.K 個の町にはショッピングモールがあり,国民は道路を通ってそれらの町のいずれかに行き買い物をする.
家の場所によっては,買い物に行くために長い距離を移動する必要があり,それは非常に不便である.国王はこの実情を把握するため,ショッピングモールのある町までの最短距離が家の場所によってどれだけ長くなりうるのかを調べることにした.家は道路の途中に建てられることもあるので(入力例1 の説明を参照),この調査は非常に大変である.そこで国王は,優秀なプログラマーであるあなたに,調査を行うプログラムの作成を依頼した.
道路の情報とショッピングモールのある町の情報が与えられるとき,ショッピングモールのある町からもっとも遠い道路上の点(端点も含む) までの距離を求めるプログラムを作成せよ.町の中を移動するのにかかる距離は無視してよい.
2 ≤ N ≤ 3000 JOI 国の町の個数
1 ≤ M ≤ 100000 = 105 JOI 国の道路の本数
1 ≤ K ≤ N ショッピングモールがある町の個数
1 ≤ li ≤ 1000 i 番目の道路の長さ
標準入力から以下の入力を読み込め.
標準出力に,ショッピングモールのある町までの最短距離の最大値の小数点以下を四捨五入した整数1 つを出力せよ.
採点用データのうち,配点の40% 分については,K = 1 を満たす.
3 3 1 1 2 1 2 3 1 3 1 1 1
2
入力例1 は次のような町を表す.道路の長さはすべて1 である.ショッピングモールは町1 にしかない.
ショッピングモールのある町までもっとも遠い点は,町2 と町3 を結ぶ道路上の,町2 から距離0.5 の位置にある点であり,ショッピングモールのある町までの距離は1.5 である.よって,それを四捨五入した値である2 を出力する.
4 5 2 1 2 4 1 3 1 2 3 2 2 4 2 3 4 1 2 4
3
問題文と自動審判に使われるデータは、情報オリンピック日本委員会が作成し公開している問題文と採点用テストデータです。