속도가 다른 n개의 수평 층을 지나 출발점에서 도착점까지 이동할 때, 각 층 경계의 통과 x좌표를 최적으로 정해 최소 시간을 구한다.
어려움8동적 계획법수학기하이분 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB철인 3종 경기는 3.86 km를 수영하고, 180.25 km를 자전거로 달린 다음, 마지막에 마라톤 풀코스를 뛰는 대회다. 가장 힘든 경기로 꼽힌다. 비베카는 이보다 더 힘든 n종 경기를 준비하고 있다. n종 경기에서는 출발점에서 도착점까지 물, 모래, 얼음, 아스팔트 같은 여러 지형을 지나야 하고, 선수는 자기 장기에 맞는 경로를 직접 고른다. 작년에 비베카는 마지막 40 km를 얼음 위에서 한 시간 만에 스케이트로 주파해 우승했고, 경쟁자 베로니카는 도착점을 1 m 앞두고 타르 웅덩이에 빠져 있었다.
올해 지형 배치가 공개됐다. 팀의 최적화 담당인 당신이 가장 빠른 경로를 찾아야 한다. 경기장은 평평한 지역이고 미터 단위의 평면으로 나타낸다. 경기장은 가로로 놓인 n개의 층으로 나뉘며, 비베카는 i번째 층 안에서는 어디서나 속력 vi로 움직인다. 즉 한 층에서 쓰는 시간은 그 층을 지나는 경로의 길이를 vi로 나눈 값이다. 경기장 밖으로 나갈 수는 없다. 출발점에서 도착점까지 가는 데 걸리는 최소 시간을 구하라.
첫째 줄에 출발점과 도착점의 좌표 xs, ys, xf, yf가 실수로 주어진다. 단위는 미터다.
둘째 줄에 층의 개수 n이 주어진다 (1≤n≤10000).
셋째 줄에 이웃한 두 층의 경계가 되는 y 좌표 y1,y2,…,yn−1이 순서대로 실수로 주어진다. 이 값들은 ys<y1<y2<⋯<yn−1<yf를 만족한다. y0=ys, yn=yf라고 하면 i번째 층은 (−10000,10000)×(yi−1,yi) 영역이다. n=1이면 이 줄은 빈 줄이다.
넷째 줄에 각 층에서 비베카의 속력 v1,…,vn이 실수로 주어진다. 단위는 초당 미터이고, 모든 vi는 양수다.
입력으로 주어지는 모든 실수는 절댓값이 104 이하이고, 소수점 아래 자리 수가 4 이하다.
비베카가 출발점에서 도착점까지 가는 데 걸리는 최소 시간을 초 단위로 출력한다. 소수점 아래 일곱째 자리에서 반올림해 소수점 아래 여섯 자리를 정확히 출력한다.