시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 256 MB | 65 | 43 | 39 | 66.102% |
フクロモモンガの JOI 君が住んでいる森にはユーカリの木が N 本生えており,それらの木には 1 から Nの番号がついている.木 i の高さは Hi メートルである.
JOI 君が相互に直接飛び移ることのできる木の組が M 組あり,各組の木の間を飛び移るためにかかる時間が定まっている.JOI 君が木の間を飛び移っている間は,地面からの高さが 1 秒あたり 1 メートル下がる.すなわち,JOI 君の現在の地面からの高さが h メートル,木の間を飛び移るためにかかる時間が t 秒であるとき,飛び移った後の地面からの高さは h − t メートルとなる.ただし,h − t が 0 よりも小さくなる場合や行き先の木の高さよりも大きくなる場合は飛び移ることができない.
さらに,JOI 君は木の側面を上下に移動することによって,地面からの高さを 0 メートルから今いる木の高さの範囲で増減させることができる.JOI 君が地面からの高さを 1 メートル増加または減少させるためには 1 秒の時間がかかる.
JOI 君は,木 1 の高さ X メートルの位置から木 N の頂上 (高さ HN メートルの位置) に行こうとしており,そのためにかかる時間の最小値を知りたい.
各木の高さと,JOI 君が直接飛び移ることができる木の組の情報と,最初 JOI 君がいる場所の高さが与えられる.木 N の頂上に行くためにかかる時間の最小値を求めるプログラムを作成せよ.
標準入力から以下のデータを読み込め.
標準出力に,木 1 の高さ X メートルの位置から木 N の頂上に行くためにかかる時間の最小値を秒単位で表す整数を 1 行で出力せよ.ただし,そのような方法がない場合は代わりに −1 を出力せよ.
追加の制限はない.
5 5 0 50 100 25 30 10 1 2 10 2 5 50 2 4 20 4 3 1 5 4 20
110
例えば,以下のように移動すればよい.
2 1 0 1 1 1 2 100
-1
JOI 君は木 1 から木 2 に飛び移ることができない.
4 3 30 50 10 20 50 1 2 10 2 3 10 3 4 10
100