인간 대포

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

당신은 세계적인 인간 대포 서커스 공연자다. 거대한 모형 대포 안으로 기어들어가 먼 거리를 날아가며 사람들을 즐겁게 하는 것이 당신의 일이다. 오늘은 혼자가 아니다. 당신은 국제 인간 대포 학회 겸 전시회장에 와 있고, 여기서는 수백 명의 인간 대포 전문가가 서로 경험을 나누고 기술을 다듬는다. 평소 서커스에서는 대포 한 대로만 공연하지만 이 전시장에는 쓸 수 있는 대포가 아주 많다.

대포를 여러 대 쓰면 전시장 안을 더 편하게 돌아다닐 수 있다. 지점 a에서 지점 b로 가려 할 때 a에서 b까지 직선으로 걸어가도 되고, 근처 대포에 올라타 다른 곳으로 발사되어도 된다. 착지한 뒤에는 도착점을 향해 걸어가도 되고, 또 다른 대포를 한 번 더 이용해 목적지에 더 빨리 도착해도 된다. 그림 1처럼 대포가 놓인 지도에서 a에서 b로 가려면 그림 2와 같은 경로를 쓸 수 있다. 화살표는 대포에서 발사되어 떨어진 지점을 잇고, 직선은 달려간 구간을 나타낸다.

그림 1

그림 2

당신은 초속 5미터로 달린다. 모든 대포는 당신이 원하는 임의의 방향으로 정확히 50미터를 날려 보낸다. 대포에 올라타서 발사되어 착지하기까지는 정확히 2초가 걸린다. 대포는 장애물이 아니어서 달리는 도중에 대포를 만나면 뛰어넘어 직선 그대로 지나간다. 현재 위치와 목적지의 위치, 그리고 대포의 위치가 주어질 때 목적지에 가장 빨리 도착하는 데 걸리는 시간을 구하라.

입력

첫 줄에 실수 두 개가 주어진다. 각각 당신이 현재 있는 위치의 X 좌표와 Y 좌표다. 둘째 줄에 목적지의 X, Y 좌표가 실수로 주어진다. 셋째 줄에 대포의 개수를 나타내는 정수 nn이 주어진다. 이어지는 nn개의 줄에는 대포 한 대의 위치가 한 줄에 하나씩, X, Y 좌표 순서의 실수로 주어진다.

모든 좌표의 단위는 미터다. 0n1000 \le n \le 100이고, 입력에 나오는 모든 X, Y 좌표는 00 이상 500500 이하의 실수이며 소수점 아래 최대 두 자리까지만 주어진다.

출력

목적지에 다다르기까지 걸리는 가장 짧은 시간을 초 단위로 한 줄에 출력한다. 소수점 아래 일곱째 자리에서 반올림해 소수점 아래 여섯 자리를 정확히 채워 출력한다.