플롯

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

문제

평면 위의 점들의 수열을 플롯(plot) 이라고 부른다. 주어진 플롯 (P1,,Pn)(P_1, \dots, P_n) 을, 원래 플롯과 가장 비슷하면서도 점의 개수가 최대 mm 개 (mnm \le n) 이하인 다른 플롯으로 바꾸려고 한다.

새 플롯은 다음과 같이 만든다. 수열 (P1,,Pn)(P_1, \dots, P_n)ss 개 (sms \le m) 의 연속한 부분수열로 나눈다.

(Pk0+1,,Pk1), (Pk1+1,,Pk2), , (Pks1+1,,Pks)(P_{k_0+1}, \dots, P_{k_1}),\ (P_{k_1+1}, \dots, P_{k_2}),\ \dots,\ (P_{k_{s-1}+1}, \dots, P_{k_s})

여기서 0=k0<k1<k2<<ks=n0 = k_0 < k_1 < k_2 < \dots < k_s = n 이다. 그런 다음 각 부분수열 (Pki1+1,,Pki)(P_{k_{i-1}+1}, \dots, P_{k_i}) (i=1,,si = 1, \dots, s) 을 하나의 새로운 점 QiQ_i 로 대체한다. 이때 점 Pki1+1,,PkiP_{k_{i-1}+1}, \dots, P_{k_i} 각각이 점 QiQ_i축약(contract) 되었다고 말한다. 그 결과 점 Q1,,QsQ_1, \dots, Q_s 로 이루어진 새 플롯이 만들어진다.

새로 만든 플롯이 원래 플롯과 얼마나 닮았는지는, 모든 점 P1,,PnP_1, \dots, P_n 에서 자신이 축약된 점까지의 거리 중 최댓값으로 측정한다.

maxi=1,,s(maxj=ki1+1,,kid(Pj,Qi))\max_{i=1,\dots,s} \left( \max_{j=k_{i-1}+1,\dots,k_i} d(P_j, Q_i) \right)

여기서 d(Pj,Qi)d(P_j, Q_i) 는 두 점 사이의 거리이며, 다음 공식으로 주어진다.

d((x1,y1),(x2,y2))=(x2x1)2+(y2y1)2d((x_1, y_1), (x_2, y_2)) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}

플롯 예시

위 그림은 예시 플롯 (P1,,P7)(P_1, \dots, P_7) 과 새 플롯 (Q1,Q2)(Q_1, Q_2) 를 나타낸다. 여기서 (P1,,P4)(P_1, \dots, P_4)Q1Q_1 로, (P5,P6,P7)(P_5, P_6, P_7)Q2Q_2 로 축약되었다.

nn 개의 점으로 이루어진 플롯이 주어질 때, 점의 개수가 최대 mm 개 이하이면서 원래 플롯과의 닮음 척도(위에서 정의한 최대 축약 거리)가 최소가 되도록 플롯을 만들 수 있다. 연속한 부분수열로 나누는 방법은 자유롭게 정할 수 있다. 이때 가능한 최소 닮음 척도 dd 를 구하여라.

입력

첫째 줄에 두 정수 nnmm 이 공백 하나로 구분되어 주어진다 (1mn1000001 \le m \le n \le 100000). 이어지는 nn 개의 줄 중 ii 번째 줄에는 두 정수 xix_iyiy_i 가 공백 하나로 구분되어 주어지며 (1000000xi,yi1000000-1000000 \le x_i, y_i \le 1000000), 이는 점 PiP_i 의 좌표 (xi,yi)(x_i, y_i) 를 나타낸다.

출력

첫째 줄에 실수 하나 dd 를 출력한다. dd 는 점의 개수가 mm 개 이하가 되도록 만들 수 있는 모든 플롯에 대하여, 원래 플롯과의 닮음 척도(각 점에서 자신이 축약된 점까지 거리의 최댓값)의 최솟값이다. 소수점 아래 정확히 66 자리까지 반올림하여 출력한다.