atcoder#ABC273F. [ABC273F] Hammer 2
[ABC273F] Hammer 2
题目描述
数直線の原点に高橋君がいます。高橋君は座標 にあるゴールに移動しようとしています。
また、数直線上に 枚の壁と 本のハンマーがあります。
- 座標 にはそれぞれタイプ の壁があります。
- 最初、高橋君は壁を超えて移動することができません。
- 座標 にはそれぞれタイプ のハンマーがあります。
- 高橋君はハンマーのある座標に着くとそこにあるハンマーを手に入れます。
- タイプ のハンマーはタイプ の壁を破壊するための専用のもので、タイプ のハンマーを手に入れた後でなら、タイプ の壁を破壊して通過できるようになります。
高橋君がゴールに到達することが可能か判定し、可能であれば移動距離の最小値を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
高橋君がゴールに到達することが可能であれば移動距離の最小値を整数として出力せよ。
不可能であれば -1
と出力せよ。
题目大意
有一个坐标轴,你一开始在 坐标,你需要走到 坐标, 但是在坐标轴上有 堵墙,坐标为 ,你不能跨越这堵墙除非你有能砸开这堵墙的锤子,第 堵墙的锤子在 问你能不能走到 ,若能则输出最小的时间,否则输出 。
3 10
-2 8 -5
5 -10 3
40
5 -1
10 -20 30 -40 50
-10 20 -30 40 -50
1
1 100
30
60
-1
4 865942261
703164879 -531670946 -874856231 -700164975
-941120316 599462305 -649785130 665402307
4078987507
提示
制約
- 入力は全て整数
- 合計 個の座標 は相異なる
Sample Explanation 1
以下の手順により、移動距離 で高橋くんがゴールに到達でき、これが移動距離の最小です。 - 座標 から高橋君が行動を開始する。 - 座標 に行く。タイプ のハンマーを手に入れる。 - 座標 に行く。タイプ のハンマーを手に入れる。 - 座標 に行く。タイプ の壁を破壊する。 - 座標 に行く。タイプ の壁を破壊する。 - 座標 に行く。タイプ のハンマーを手に入れる。 - 座標 に行く。タイプ の壁を破壊する。 - 座標 に行く。ここがゴールである。
Sample Explanation 2
ゴールに移動するために、ハンマーを手に入れる必要も壁を破壊する必要もない場合もあります。
Sample Explanation 3
高橋君がタイプ のハンマーを手に入れることは不可能であり、ゴールに辿り着くこともできません。