일본 알프스의 두 등반가

시간 제한1초메모리 제한128 MB

문제

숙련된 두 등반가가 전에 없던 새로운 시도를 계획하고 있다. 두 사람은 산줄기 위에서 고도가 같은 두 지점에서 출발하여, 매 순간 서로의 고도를 똑같이 유지한 채 하나의 경로 위를 앞뒤로 오가다가, 마침내 경로 위의 한 지점에서 서로 만난다.

한 현자는 "경로 위에 두 출발 지점(고도가 같은 두 지점)보다 낮은 지점이 하나도 없다면 이 시도는 언제나 성공할 수 있다"라고 알려 주었다. 그래서 두 등반가는 이 대담한 계획을 세울 수 있었다.

두 사람은 고도를 알려 주는 고도계와, 서로의 고도를 같게 맞추는 데 필요한 통신 장비를 이미 갖추었고, 후보 경로도 하나 골랐다. 이 경로는 가지가 없는 연속된 선분들로 이루어져 있으며, 두 출발 지점은 경로의 양 끝이고, 경로 위의 어떤 지점도 두 출발 지점보다 낮지 않다. 아래 그림은 그러한 경로의 예이다(첫 번째 예제 입력에 해당한다).

경로 예시

시도가 가능하다는 것은 보장되지만, 고도를 똑같이 유지하려면 보통 전진과 후진을 복잡하게 섞어야 하기 때문에 두 등반가는 손으로 이동 순서를 찾지 못했다. 예를 들어 위 경로에서 한 가지 방법은 다음과 같다. 등반가 A는 p1에서 출발해 s로 이동하고, 그동안 등반가 B는 p6에서 p5로 이동한다. 이어서 A는 t로 되돌아가고 B는 p4로 이동한다. 마지막으로 A가 p3에 도착하는 바로 그 순간 B도 p3에 도착한다.

가능한 이동 순서 쌍은 둘 이상일 수 있으므로, 두 사람이 이동한 길이의 합이 가장 작은 쌍을 구해야 한다. 길이는 경로 표면을 따라(호의 길이로) 잰다. 예를 들어 $(0, 0)$에서 $(3, 4)$로 오르는 선분의 길이는 $5$이다.

입력

입력은 여러 개의 데이터셋으로 이루어진다.

각 데이터셋의 첫 줄에는 경로 위 점의 개수 $N$ ($2 \le N \le 100$)이 주어진다. 이어지는 $N$개의 줄에는 각 점의 좌표 $(x_i, y_i)$ ($i = 1, 2, \dots, N$)가 주어진다. 두 출발 지점은 $(x_1, y_1)$과 $(x_N, y_N)$이며, 경로는 $i = 1, 2, \dots, N-1$에 대해 $(x_i, y_i)$와 $(x_{i+1}, y_{i+1})$을 잇는 선분들로 이루어진다.

$x_i$는 출발점 $x_1$에서부터 경로를 따라 잰 수평 거리이고, $y_i$는 출발 고도 $y_1$을 기준으로 한 상대 고도이다. 모든 좌표는 $1000$보다 작은 음이 아닌 정수이며, $i = 1, 2, \dots, N-1$에 대해 $x_i < x_{i+1}$이고, $i = 2, 3, \dots, N-1$에 대해 $0 = y_1 = y_N \le y_i$를 만족한다.

입력의 끝은 $0$ 하나만 있는 줄로 표시된다.

출력

각 데이터셋에 대해, 두 등반가가 고도를 똑같이 유지하며 이동하여 한 지점에서 만날 때까지 이동한 길이의 합의 최솟값(경로를 따라 잰 값)을 출력한다.

값을 소수점 아래 정확히 둘째 자리까지 반올림하여 데이터셋마다 한 줄에 하나씩 출력한다.