염소 밧줄
시간 제한8초메모리 제한128 MB
n개의 점에 반지름을 배정하되 모든 쌍에서 r_i + r_j가 두 점 사이 거리 이하가 되도록 하고, 반지름 합의 최댓값을 구한다.
문제
한 농부에게 염소가 마리 있고, 같은 들판에 고정된 말뚝이 개 있다. 농부는 각 염소를 서로 다른 말뚝에 밧줄로 묶어, 모든 염소가 되도록 넓게 돌아다닐 수 있게 하려고 한다. 길이가 인 밧줄로 말뚝에 묶인 염소는 그 말뚝을 중심으로 하는 반지름 인 원 안이라면 어디서든 풀을 뜯을 수 있다.
염소 밧줄은 쉽게 엉키므로, 어떤 염소도 다른 염소의 방목 구역 안으로 들어갈 수 있어서는 안 된다. 즉 어떤 두 방목 원도 서로 겹쳐서는 안 된다(한 점에서 접하는 것은 허용된다). 이 규칙을 지키도록 밧줄 길이를 정할 때, 농부가 사용할 수 있는 밧줄 길이 총합의 최댓값은 얼마인가?
수식으로 나타내면, 서로 다른 모든 말뚝 쌍 에 대해 가 성립하도록 각 말뚝 에 반지름 을 배정한다. 여기서 는 두 말뚝 사이의 거리이다. 이때 를 최대화하라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 말뚝의 개수를 나타내는 정수 ()으로 시작한다. 이어지는 개의 줄에는 각각 말뚝의 좌표를 나타내는 두 정수 와 (, )가 미터 단위로 주어진다. 두 말뚝이 같은 위치에 있는 경우는 없다. 들판은 충분히 넓어 염소가 그 경계에 닿는 일은 없다. 입력은 하나만 있는 줄로 끝난다.
출력
각 테스트 케이스마다 농부가 사용할 수 있는 밧줄 길이 총합의 최댓값을 미터 단위로, 소수점 아래 정확히 둘째 자리까지 반올림하여 한 줄에 출력한다. 불필요한 공백을 출력하지 말고, 답과 답 사이에 빈 줄을 넣지 마라.