ELEVTRBL  Elevator Trouble
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 s, where you see an elevator. Upon entering the elevator, you learn that it has only two buttons, marked "UP u" and "DOWN d". You conclude that the UPbutton takes the elevator u floors up (if there aren't enough floors, pressing the UPbutton does nothing, or at least so you assume), whereas the DOWNbutton takes you d stories down (or none if there aren't enough). Knowing that the interview is at floor g, and that there are only f 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 f, s, g, u and d (floors, start, goal, up, down), find the shortest sequence of button presses you must press in order to get from s to g, given a building of floors, or output "use the stairs" if you cannot get from s to g by the given elevator.
Input
The input will consist of one line, namely f s g u d, where 1 <= s, g <= f <= 1000000 and 0 <= u, d <= 1000000. The floors are oneindexed, i.e. if there are 10 stories, s and g be in [1; 10].
Output
You must reply with the minimum numbers of pushes you must make in order to get from s to g, or output "use the stairs" if it is impossible given the conguration of the elevator.
Example
Input: 10 1 10 2 1 Output: 6
Input: 100 2 1 1 0 Output: use the stairs
hide comments
noobie32:
20181211 21:24:04
AC in one go!! 

sachinspoj:
20181006 13:56:21
AC in one go!


aryan12:
20180904 17:28:19
A nice question for a beginner like me in bfs. It took me a lot of time to figure out the right answer and finally I did it. The problem which may occur in some of your codes can be a WA in 12th test case as mentioned by the previous comments.I will just leave a small hint to make you figure out what is wrong in your code.


taponidhi:
20180613 07:11:30
Those who are getting WA in 12th testcase,note that starting floor mustn't be below the final floor.Even final floor can be below the starting floor.So when you make the comparison of cur_floor+u or cur_floord,use top,bottom variable to store maximum of (start,end) & minimum of (start,end) and then make comparisons. Last edit: 20180613 07:12:20 

akash13s:
20180531 09:30:36
AC in 2nd go!


pithoriya:
20180523 06:23:56
solved using AP ...and if ..else


spa1ish:
20180502 14:58:20
solved using if..else logic...ac in one go 

avik26091998:
20180225 21:40:42
My first in BFS!!! 

vivek_prime:
20180114 19:20:25
ac in one go :) 

frozen7:
20171020 17:06:54
Simple BFS AC in one go :) 
Added by:  Krzysztof Lewko 
Date:  20111006 
Time limit:  1s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ASM64 
Resource:  Nordic programming contest 