국경 분쟁

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

문제

이르바니스탄과 직지케스탄은 국경을 맞댄 두 나라다. 두 나라는 국경 문제로 여러 차례 전쟁을 벌였고 수만 명이 목숨을 잃었다. 그런데도 어느 쪽도 상대가 주장하는 국경선을 받아들이지 않았다.

최근 두 나라를 이끌게 된 지도부는 국경 분쟁을 끝내자는 국제 연합의 제안을 받아들였다. 제안의 내용은 공정한 컴퓨터 프로그램이 계산한, 더 짧고 단순한 국경선을 새로 만들자는 것이다.

현재 국경선 PP는 서로 교차하지 않는 선분의 집합이고, 선분 하나는 국경점 두 개를 잇는다. 국경점을 차례로 p0,p1,,pN1p_0, p_1, \dots, p_{N-1}이라 하자. 즉 PP0i<N10 \le i < N-1인 모든 ii에 대해 pip_ipi+1p_{i+1}을 잇는 선분으로만 이루어진다.

국제 연합은 점 c0,c1,,cKc_0, c_1, \dots, c_K로 이루어진 새 국경선 CC를 만들자고 제안한다. 이때 c0=p0c_0 = p_0, cK=pN1c_K = p_{N-1}이어야 하고, 다음 두 조건을 지켜야 한다.

  1. 각 점 cic_ip0,,pN1p_0, \dots, p_{N-1} 중 하나다. ci=prc_i = p_r이고 ci+1=psc_{i+1} = p_s이면 당연히 s>rs > r이다.
  2. 각 점 pip_iCC 사이의 거리는 주어진 값 DD보다 크지 않아야 한다. pip_iCC 사이의 거리는 pip_i에서 CC 위의 가장 가까운 점까지의 거리다. pip_i에서 그 가장 가까운 점까지 그은 선분은 항상 CC와 수직이다.

두 조건을 지키는 새 국경선 CC 중에서 길이가 가장 짧은 것을 찾아 그 길이를 구하여라.

입력

입력은 테스트 케이스 여러 개로 이루어진다. 각 테스트 케이스의 첫 줄에는 점의 개수 NN (2N1002 \le N \le 100)과 정수 DD (0D5000 \le D \le 500)가 주어진다. 다음 NN개의 줄에는 점 pip_i의 좌표를 나타내는 두 정수 xix_i, yiy_i (10000xi,yi10000-10000 \le x_i, y_i \le 10000)가 주어진다. 좌표는 증가한다. 즉 모든 ii에 대해 xi<xi+1x_i < x_{i+1}이고 yi<yi+1y_i < y_{i+1}이다. 입력은 0으로 시작하는 줄로 끝난다.

출력

각 테스트 케이스마다 새 국경선의 가장 짧은 길이를 소수점 아래 둘째 자리까지 반올림해 한 줄에 출력한다. 소수점 아래 두 자리는 언제나 채워서 출력한다. 반올림 결과가 갈리는 경계에 놓이는 답은 입력 데이터에 없다.