atcoder#ABC273F. [ABC273F] Hammer 2

[ABC273F] Hammer 2

配点 : 500500

問題文

数直線の原点に高橋君がいます。高橋君は座標 XX にあるゴールに移動しようとしています。

また、数直線上に NN 枚の壁と NN 本のハンマーがあります。

  • 座標 Y1,Y2,,YNY_1,Y_2,\dots,Y_N にはそれぞれタイプ 1,2,,N1,2,\dots,N の壁があります。- 最初、高橋君は壁を超えて移動することができません。
  • 最初、高橋君は壁を超えて移動することができません。
  • 座標 Z1,Z2,,ZNZ_1,Z_2,\dots,Z_N にはそれぞれタイプ 1,2,,N1,2,\dots,N のハンマーがあります。- 高橋君はハンマーのある座標に着くとそこにあるハンマーを手に入れます。
    • タイプ ii のハンマーはタイプ ii の壁を破壊するための専用のもので、タイプ ii のハンマーを手に入れた後でなら、タイプ ii の壁を破壊して通過できるようになります。
  • 高橋君はハンマーのある座標に着くとそこにあるハンマーを手に入れます。
  • タイプ ii のハンマーはタイプ ii の壁を破壊するための専用のもので、タイプ ii のハンマーを手に入れた後でなら、タイプ ii の壁を破壊して通過できるようになります。

高橋君がゴールに到達することが可能か判定し、可能であれば移動距離の最小値を求めてください。

制約

  • 入力は全て整数
  • 1N15001 \le N \le 1500
  • 1X,Yi,Zi1091 \le |X|,|Y_i|,|Z_i| \le 10^9
  • 合計 2×N+12 \times N + 1 個の座標 X,Yi,ZiX,Y_i,Z_i は相異なる

入力

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

NN XX

Y1Y_1 Y2Y_2 \dots YNY_N

Z1Z_1 Z2Z_2 \dots ZNZ_N

出力

高橋君がゴールに到達することが可能であれば移動距離の最小値を整数として出力せよ。 不可能であれば -1 と出力せよ。

3 10
-2 8 -5
5 -10 3
40

以下の手順により、移動距離 4040 で高橋くんがゴールに到達でき、これが移動距離の最小です。

  • 座標 00 から高橋君が行動を開始する。
  • 座標 33 に行く。タイプ 33 のハンマーを手に入れる。
  • 座標 55 に行く。タイプ 11 のハンマーを手に入れる。
  • 座標 2-2 に行く。タイプ 11 の壁を破壊する。
  • 座標 5-5 に行く。タイプ 33 の壁を破壊する。
  • 座標 10-10 に行く。タイプ 22 のハンマーを手に入れる。
  • 座標 88 に行く。タイプ 22 の壁を破壊する。
  • 座標 1010 に行く。ここがゴールである。
5 -1
10 -20 30 -40 50
-10 20 -30 40 -50
1

ゴールに移動するために、ハンマーを手に入れる必要も壁を破壊する必要もない場合もあります。

1 100
30
60
-1

高橋君がタイプ 11 のハンマーを手に入れることは不可能であり、ゴールに辿り着くこともできません。

4 865942261
703164879 -531670946 -874856231 -700164975
-941120316 599462305 -649785130 665402307
4078987507