You are on your way to your first job interview as a program
tester, and you are already late. The interview is in a
skyscraper and you are currently in floor , where you see an elevator. Upon
entering the elvator, you learn that it has only two buttons,
marked “UP ” and “DOWN
”. You conclude that
the UP-button takes the elevator floors up (if there aren’t enough
floors, pressing the UP-botton does nothing,
or at least so you assume), whereas the DOWN-button takes you stories down (or none if there
aren’t enough). Knowing that the interview is at floor
, and that there are
only floors in the
building, you quickly decide to write a program that gives you
the amount of button pushes you need to perform. If you simply
cannot reach the correct floor, your program halts with the
message “use the stairs”.
Given input ,
, , and (floors, start, goal, up, down),
find the shortest sequence of button presses you must press in
order to get from to
, given a building of
floors, or output
“use the stairs” if you cannot get from
to by the given elevator.
Input
The input will consist of one line with the five integers
, , , , and , where and
.
The floors are one-indexed, i.e., if there are 10 stories,
and are between and (inclusive).
Output
Output the minimum numbers of pushes you must make in order
to get from to
, or output use the stairs if it is impossible given the
configuration of the elvator.
Sample Input 1 |
Sample Output 1 |
10 1 10 2 1
|
6
|
Sample Input 2 |
Sample Output 2 |
100 2 1 1 0
|
use the stairs
|