로봇 수리 창고 배치

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

문제

로보코프 오리건(RoboCorp Oregon)은 주 전역에 여러 대의 폴리스봇(PoliceBot)을 배치했고, 이제 고장 난 로봇을 수리할 수 있기를 원한다. 회사는 한정된 개수의 수리 창고만 지을 수 있으며, 모든 로봇이 어느 창고엔가 가깝도록 창고들을 배치하려고 한다.

배치된 폴리스봇 $n$대($1 \le n \le 16$)의 위치와, 지을 수 있는 수리 창고의 최대 개수 $c$($1 \le c \le n$)가 주어진다. 각 창고는 평면 위 임의의 지점에 놓을 수 있다(로봇이 있는 위치로 제한되지 않는다). 각 로봇은 자신과 가장 가까운 창고에서 수리를 받으며, 어떤 로봇이든 어떤 창고에서나 수리할 수 있다. 창고를 최대 $c$개 배치하여, 임의의 로봇에서 가장 가까운 창고까지의 거리 중 최댓값을 최소가 되게 하고, 그 최솟값을 출력하라.

입력

첫 줄에 테스트 케이스의 수 $t$($1 \le t \le 350$)가 주어진다.

각 테스트 케이스의 첫 줄에는 두 정수 $n$과 $c$가 주어진다. 이어지는 $n$개의 줄에는 각각 로봇 한 대의 좌표를 나타내는 두 실수 $x$와 $y$($0.0 \le x, y \le 10.0$)가 공백으로 구분되어 주어진다. 좌표는 실수이며, 일부는 정수로 표기될 수 있다.

출력

각 테스트 케이스마다, 임의의 로봇에서 가장 가까운 창고까지의 거리의 최댓값을 최소화했을 때의 값을 한 줄에 하나씩 출력한다. 소수점 앞에 최소 한 자리, 소수점 뒤에 정확히 여섯 자리를 출력한다. 출력값은 참값과의 오차가 $5\times10^{-7}$ 이내여야 한다. 참값의 소수점 아래 일곱 번째 자리는 절대 $4$ 또는 $5$가 아니므로, 여섯 자리로 반올림하는 것은 항상 명확하다.