11936. Молоток 2
Степан знаходиться в початку числової прямої. Він хоче бути в координаті \(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
Коментарі