낙하산

낙하 속도, 낙하산 활공 속도, 걷는 속도, 정수 x 위치에 세워진 차들이 주어질 때, x = Xe 안전 지대에 도달하는 최소 시간을 구한다.

보통6수학구현그리디완전 탐색아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

규환이는 배틀로얄 게임에 빠졌다. 100명이 한 맵에서 생존을 겨루는 2차원 게임이고, 맵은 (0,0)(0, 0)부터 (Sy,N)(S_y, N)까지다. 좌표는 (y,x)(y, x) 순서로 쓴다. 끝까지 살아남으려면 안전 지역을 빨리 확보해야 한다.

게임이 시작되면 규환이는 시작 지점 S(Sy,Sx)S(S_y, S_x)에서 일정한 속도 gg로 수직 낙하한다. 수직 낙하 중에는 왼쪽이나 오른쪽으로 움직일 수 없고, 원하는 순간에 낙하산을 펼 수 있다. 낙하산을 펴면 수평 방향으로 최대 aa의 속도로 움직일 수 있고, 낙하 속도는 g/2g/2로 줄어든다. 수평 속력은 00부터 aa 사이에서 정하며, 가속에 걸리는 시간은 00으로 본다. 낙하산으로 착륙하는 지점의 x좌표는 항상 0 이상의 정수여야 한다.

y좌표가 0이 되어 착륙하면 걷거나 차를 탈 수 있다. 걷는 속도는 ff이고, 차는 MM대 있다. 각 차에는 위치 P(0,Xp)P(0, X_p)와 속도 SpS_p가 정해져 있다. 차가 가속하는 시간, 차를 갈아타는 시간, 차가 방향을 바꾸는 시간은 모두 00으로 본다. 두 차가 같은 위치에 있는 경우는 없다.

안전 지역 E(0,Xe)E(0, X_e)로 가는 방법은 세 가지다. 낙하산을 펴고 바로 가거나, 착륙한 뒤 걸어가거나, 착륙한 뒤 차를 탄다.

예를 들어 아래 그림처럼 g=10g = 10, a=2a = 2, f=1f = 1이고 시작 위치가 S(100,100)S(100, 100)이라면 낙하하는 동안 x축 속도는 00, y축 속도는 1010이다. 5초가 지나면 위치는 (50,100)(50, 100)이다. 여기서 낙하산을 펴고 최대 속도 22로 오른쪽으로 가면 x축 속도는 22, y축 속도는 55가 되고, 10초 뒤에 (0,120)(0, 120)에 도착한다. 그 자리에 있는 1번 차를 타면 속도가 6060이 되어 1초 뒤에 안전 지역에 닿는다.

낙하 경로 예시

규환이가 안전 지역에 도착하는 가장 빠른 시간을 구하자.

입력

첫째 줄에 맵의 x축 크기 NN, 차의 개수 MM, 수직 낙하 속도 gg, 낙하산을 폈을 때의 수평 최대 속도 aa, 걷는 속도 ff가 주어진다. NN은 200 이하의 자연수, MM은 100 이하의 자연수이거나 0, gg0<g10000 < g \le 1000인 자연수, aa0<a1000 < a \le 100인 자연수, ff0<f500000 < f \le 50000인 자연수다.

둘째 줄에 시작 위치의 SyS_ySxS_x, 안전 지역의 x좌표 XeX_e가 주어진다. SyS_y0<Sy10000 < S_y \le 1000인 자연수, SxS_x0SxN0 \le S_x \le N인 정수, XeX_e0XeN0 \le X_e \le N인 정수다.

이어지는 MM개의 줄에 차의 위치 XpX_p와 차의 속도 SpS_p가 한 줄에 하나씩 주어진다. XpX_p0XpN0 \le X_p \le N인 정수, SpS_p0<Sp500000000 < S_p \le 50000000인 자연수다.

출력

안전 지역에 도착하는 최소 시간을 소수점 아래 여덟째 자리까지 반올림해 한 줄에 출력한다.