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 elvator, you learn that it has only two buttons, marked "UP u" and "DOWN d". You conclude that the UP-button takes the elevator u 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 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), fi nd 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 one-indexed, 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 con guration of the elevator.

Example

Input:
10 1 10 2 1

Output:
6
Input:
100 2 1 1 0 

Output:
use the stairs

hide comments
flyingduchman_: 2016-08-14 14:21:58

In BFS , you should set "visited" array size to a big value like bool visited[10000000] to handle corner cases.

kunal todi: 2016-08-05 10:48:05

Can anyone let me know why after running 12 test cases successfully, the judge gives me wrong answer

Sachin Bisht : 2016-04-23 09:29:21

I am trying to implement this problem in JAVA but getting TLE.
Can anyone help me out. (FYI I am using ArrayDeque instead of LinkedList but still getting TLE)

try2catch: 2016-02-21 10:20:53

finally understood ! meaning of BFS.

chin: 2015-06-28 22:31:02

Finally AC..:D

Aditya Joshi: 2014-11-29 06:04:35

HINT:


For people using Java, try and use an ArrayDeque instead of a LinkedList to implement your abstract Queue.

Last edit: 2014-11-29 06:04:45
chk: 2013-09-06 17:35:30

awesome problem :)

Ajey Golsangi: 2012-07-21 11:36:39

Clear problem description found here http://ncpc.idi.ntnu.no/ncpc2011/ncpc2011problems.pdf

:D: 2012-07-16 11:08:06

I just rechecked my old submission and it still passes with roughly the same time. The problem is ok and your solution is simply to weak. It's not the first time when the author's solution is too weak for SPOJ standards ;)

voodoo: 2012-07-16 01:57:50

I did the problem, and I submitted, but I got TL, and I tried submitting the solution given by the problem setter but got TL too...so, there is something wrong here.(java)


Added by:Krzysztof Lewko
Date:2011-10-06
Time limit:0.148s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All
Resource:Nordic programming contest