아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

자전거 타는 오리

시간 제한2초메모리 제한256 MB

요약
직사각형 지도 위 두 지점 사이를 도보와 대여소 사이 자전거 주행으로 이동할 때 지도 밖에 임의로 둔 대여소를 가장 유리하게 이용해 최단 이동 시간을 구합니다.
난이도

보통10점 중 7점

유형
최단 경로, 기하, 수학
정답자
아직 제출이 없습니다

문제

글래드스톤 갠더는 덕버그를 걷고 있다. 데이지 덕과 만나기로 한 곳까지 최대한 빨리 가야 한다. 늦으면 도널드가 나타나 자리를 차지할지도 모른다.

덕버그는 최근 무료 공용 자전거를 운영하기 시작했다. 도시 곳곳의 자전거 정류소에서 자전거를 빌려 다른 정류소까지 타고 간 다음 그곳에 반납한다. 그래서 글래드스톤이 이동하는 방법은 두 가지다. 걷거나, 자전거를 탄다. 자전거가 더 빠르지만 자전거는 정류소에서만 빌리고 정류소에서만 반납한다. 걷든 자전거를 타든 두 지점 사이는 직선으로 이동한다.

글래드스톤은 덕버그 중심부를 담은 직사각형 지도를 들고 있다. 자기 위치와 데이지를 만날 지점이 모두 이 지도 안에 있고, 지도 경계 안쪽에 있는 자전거 정류소는 지도에 모두 표시되어 있다.

지도 밖에도 자전거 정류소가 더 있다. 글래드스톤의 운이 끝없이 좋아서, 걸어서든 자전거로든 지도 밖으로 나가는 순간 자기에게 유리한 자리에 정류소가 하나 있다고 가정해도 된다. 지도 밖 정류소는 지도 밖 어디에나 놓일 수 있고 좌표가 정수일 필요도 없다.

지도가 주어질 때, 글래드스톤이 데이지에게 도착하는 데 걸리는 가장 짧은 시간을 구한다.

입력

입력은 다음과 같이 주어진다.

  • 첫째 줄에 두 정수 vwalkv_{walk}와 vbikev_{bike} (1≤vwalk<vbike≤10001 \le v_{walk} < v_{bike} \le 1000). 각각 걷는 속력과 자전거를 타는 속력이다.
  • 둘째 줄에 네 정수 x1x_1, y1y_1, x2x_2, y2y_2 (−106≤x1<x2≤106-10^6 \le x_1 < x_2 \le 10^6, −106≤y1<y2≤106-10^6 \le y_1 < y_2 \le 10^6). 중심부 지도의 경계 좌표다.
  • 셋째 줄에 두 정수 xGx_G와 yGy_G. 글래드스톤의 위치다.
  • 넷째 줄에 두 정수 xDx_D와 yDy_D. 데이지의 위치다.
  • 다섯째 줄에 정수 nn (0≤n≤10000 \le n \le 1000). 지도에 표시된 자전거 정류소의 개수다.
  • 이어지는 nn개 줄에 각각 두 정수 xstationx_{station}과 ystationy_{station}. 표시된 정류소 하나의 좌표다.

주어지는 좌표는 모두 지도 안에 있다. 즉 x1≤x≤x2x_1 \le x \le x_2이고 y1≤y≤y2y_1 \le y \le y_2이다.

출력

글래드스톤이 데이지에게 도착하는 데 걸리는 가장 짧은 시간을 한 줄에 출력한다. 소수점 아래 여섯째 자리까지 반올림해 여섯 자리를 모두 적는다.

예제8

  1. 예제 1

    입력
    1 8
    0 0 10 10
    5 1
    5 9
    3
    5 8
    2 2
    9 6
    
    예상 출력
    3.000000
    
  2. 예제 2

    입력
    5 100
    0 -100000 100000 0
    5 -30000
    40000 -5
    0
    
    예상 출력
    501.998750
    
  3. 예제 3

    입력
    999 1000
    0 0 1000000 1000000
    500000 500000
    500001 500000
    0
    
    예상 출력
    0.001001
    
  4. 예제 4

    입력
    1 2
    -5 -5 5 5
    0 0
    0 0
    1
    3 4
    
    예상 출력
    0.000000
    
  5. 예제 5

    입력
    1 4
    0 0 100 100
    10 10
    90 10
    2
    10 10
    90 10
    
    예상 출력
    20.000000
    
  6. 예제 6

    입력
    1 5
    0 0 10 10
    0 0
    10 10
    0
    
    예상 출력
    2.828427
    
  7. 예제 7

    입력
    1 1000
    -1000000 -1000000 1000000 1000000
    0 0
    0 1000
    2
    0 1
    0 999
    
    예상 출력
    2.998000
    
  8. 예제 8

    입력
    3 60
    -1000000 -1000000 -1 -1
    -999000 -500000
    -2000 -400000
    1
    -500000 -900000
    
    예상 출력
    17749.430414