Проблеми з ліфтом
Ви прямуєте на свою першу співбесіду на посаду тестувальника програмного забезпечення і вже запізнюєтеся. Співбесіда проходить у хмарочосі, і ви зараз перебуваєте на поверсі s, де бачите ліфт. Зайшовши в ліфт, ви помічаєте, що в нього є лише дві кнопки: "UP u" і "DOWN d". Ви робите висновок, що кнопка UP піднімає ліфт на u поверхів вгору (якщо поверхів недостатньо, натискання кнопки UP нічого не змінює, або принаймні ви так припускаєте), тоді як кнопка DOWN опускає вас на d поверхів вниз (або не опускає, якщо поверхів недостатньо). Знаючи, що співбесіда відбувається на поверсі g, і що в будівлі всього f поверхів, ви швидко вирішуєте написати програму, яка визначить кількість натискань кнопок, які вам потрібно виконати. Якщо ви не можете дістатися потрібного поверху, ваша програма повинна вивести повідомлення "use the stairs".
Дано f, s, g, u і d (загальна кількість поверхів, стартовий поверх, цільовий поверх, підйом, спуск), і потрібно знайти найкоротшу послідовність натискань кнопок, щоб дістатися від s до g у будівлі з f поверхів, або вивести "use the stairs", якщо це неможливо за допомогою ліфта.
Вхідні дані
Складаються з одного рядка, а саме f s g u d, де 1 ≤ s, g ≤ f ≤ 10^6
і 0 ≤ u, d ≤ 10^6
. Поверхи нумеруються з одиниці, тобто якщо є 10 поверхів, s і g можуть бути в [1, 10].
Вихідні дані
Ви повинні вказати мінімальну кількість натискань, які потрібно зробити, щоб дістатися від s до g, або вивести "use the stairs", якщо це неможливо з урахуванням конфігурації ліфта.