11936. Молоток 2


Відправити розв'язок

Бали: 100
Time limit: 3.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Степан знаходиться в початку числової прямої. Він хоче бути в координаті \(X\). Крім того, на числовій прямій є \(N\) стін і \(N\) молотків.

  • За координатами \(Y_1,Y_2,\ldots,Y_N\) є стіни типів \(1,2,\ldots,N\) відповідно.

--Спочатку Степан не може перебратися через стіни.

  • У координатах \(Z_1,Z_2,\ldots,Z_N\) є молотки типів \(1,2,\ldots,N\) відповідно.

--Коли він досягає координати з молотком, він отримує молоток.

--Молот типу \(i\) призначений для руйнування стіни типу \(i\). Після того, як він отримає молот типу \(i\), він може зруйнувати стіну типу \(i\) і перебратися через неї.

Визначте, чи зможе він досягти мети. Якщо він може, знайдіть мінімальну відстань, яку він проходить.

Обмеження

  • Усі значення у вхідних даних є цілими числами.
  • \(1 \le N \le 1500\)
  • \(1 \le |X|,|Y_i|,|Z_i| \le 10^9\)
  • (\(2 \times N + 1\)) координат \(X,Y_i\) та \(Z_i\) відрізняються.

Формат вхідних даних

Перший рядок містить цілі числа \(N,X\)

Наступний  рядок містить \(N\) цілих чисел \(Y_i\)

Третій  рядок містить \(N\) цілих чисел \(Z_i\)

Числа у рядках розділяються пропуском.

Формат вихідних даних

У вихідний потік виведіть відповідь або -1, якщо Степан не зможе досягти мети

Приклад вхідних даних

3 10
-2 8 -5
5 -10 3

Приклад вихідних даних

40

Степан може досягти мети, пройшовши відстань 40 наступним чином, що є мінімальню:

  • Він починається з координати 0.
  • Він переходить до координати 3, щоб отримати молот типу 3.
  • Він переходить до координати 5, щоб отримати молот типу 1.
  • Він рухається до координати -2, щоб зруйнувати стіну типу 1.
  • Він рухається до координати -5, щоб зруйнувати стіну типу 3.
  • Він переходить до координати -10, щоб отримати молот типу 2.
  • Він рухається до координати 8, щоб зруйнувати стіну типу 2.
  • Він рухається до координати 10, яка є метою.

Приклад вхідних даних

5 -1
10 -20 30 -40 50
-10 20 -30 40 -50

Приклад вихідних даних

1

Приклад вхідних даних

1 100
30
60

Приклад вихідних даних

-1

Коментарі

Ще немає коментарів.