시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
드넓은 초원에 수많은 꽃이 흩어져 피어 있습니다. 부지런한 벌들은 그 꽃들 사이를 날아다니며 앉았다 떠나기를 반복하고, 벌집에서 꿀을 만드는 원료인 꽃가루를 모읍니다. 벌 무리의 생존과 번영이 여기에 달려 있으므로, 가능한 한 많은 꽃가루를 모으려면 모든 꽃을 빠짐없이 방문해야 합니다.
벌 마야는 벌들이 초원의 모든 꽃을 방문하도록 일정표를 짜야 합니다. 일정표는 여러 개의 꽃 집합(정확히는 꽃의 위치들의 집합)으로 이루어집니다. 각 벌은 집합 하나를 배정받아, 그 집합에 속한 모든 꽃을 임의의 순서로 방문합니다. 한 꽃은 몇 번이든 다시 방문할 수 있습니다. 벌은 모두 B마리이고 각 벌이 집합 하나씩을 맡으므로, 하나의 일정표에 들어가는 집합은 최대 B개입니다.
두 꽃 (x1,y1)과 (x2,y2) 사이의 거리는 유클리드 거리 (x1−x2)2+(y1−y2)2입니다.
마야가 무게가 가장 작은 일정표를 찾도록 돕는 프로그램을 작성하세요.
첫째 줄에 두 자연수 F와 B가 주어집니다 (1≤F≤2000, 1≤B≤F). F는 초원에 있는 꽃의 수, B는 꽃가루를 모으는 데 쓸 수 있는 벌의 수입니다.
다음 F개의 줄에는 각각 두 자연수 X와 Y가 주어지며 (1≤X,Y≤10000), 한 꽃의 좌표를 나타냅니다.
첫째 줄에 주어진 입력에 대한 일정표의 가능한 최소 무게를 소수점 아래 둘째 자리까지 반올림하여 출력합니다.