printРабочее место участника

printЗадачи

2318. Лифт

Ограничения: время – 200ms/500ms, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

35612.jpg
Петру необходимо попасть с этажа `A` на этаж `B`. Для вызова лифта на всех этажах офисного здания, кроме первого и последнего, есть две кнопки – для перемещения вниз и перемещения вверх. В тот момент, когда Петр нажал нужную кнопку вызова, лифт находился на этаже `C` и вез одного пассажира на этаж `D`. Если лифт проезжает мимо этажа, на котором нажата кнопка вызова, и лифт движется в подходящем направлении, то лифт останавливается, чтобы посадить дополнительного пассажира. Лифт перемещается между соседними этажами за одну единицу времени, также одну единицу времени занимает остановка лифта на этаже для высадки или посадки пассажиров.
Напишите программу, вычисляющую, через сколько времени Петр доберется до этажа `B`, при условии, что никто больше не будет вызвать лифт.
Первая строка ввода содержит четыре целых числа `A`, `B`, `C` и `D`, разделенных одним пробелом (`1\ ≤\ A,\ B,\ C,\ D\ ≤\ 20`, `A≠B`, `C≠D`, `A≠C`).
Вывести одно целое число – количество единиц времени от момента вызова лифта до момента, когда Петр выйдет из лифта на этаже `B`.

Пример ввода 1

3 9 2 5

Пример вывода 1

10

Пример ввода 2

3 9 5 2

Пример вывода 2

13
Пояснение к примеру 1
Лифт за 1 единицу времени доедет до 3-го этажа, остановится на 1 единицу времени, чтобы Петр сел в лифт, затем через 2 единицы времени доедет до 5-го этажа и остановится на 1 единицу времени для высадки предыдущего пассажира, через 4 единицы времени лифт довезет Петра до 9-го этажа, и через 1 единицу времени Петр выйдет из лифта.
Система оценки
В этой задаче 20 тестов, каждый тест оценивается в 5 баллов. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте.
loading