크레인

면접 대비

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

요약
반지름이 주어진 15개 이하의 크레인 위치 중에서 두 위치 사이의 거리가 두 반지름의 합보다 큰 것들만 골라 반지름 제곱의 합이 최대가 되도록 한다.
난이도

보통10점 중 6점

유형
완전 탐색, 기하, 백트래킹, 구현
정답자
아직 제출이 없습니다

문제

크레인은 건물을 세우는 데 아주 유용한 장비이며, 크레인을 여러 대 사용하면 공사를 훨씬 빠르게 진행할 수 있다. 하지만 같은 건물에서 너무 많은 크레인이 작업하면 위험할 수 있다. 크레인이 회전하다가 다른 크레인과 부딪히면 넘어져 큰 피해가 발생할 수 있기 때문이다. 그래서 안전 규정은 어떤 크레인의 어떤 부분도 다른 크레인의 어떤 부분과 닿을 수 없을 만큼 크레인들을 충분히 떨어뜨려 배치하도록 요구한다.

공사장은 정사각형 격자이며, 격자 위의 몇몇 지점이 크레인을 놓을 수 있는 후보 위치로 표시되어 있다. 어떤 위치에 놓인 크레인은 길이가 rr인 팔이 그 위치를 중심으로 회전하므로, 그 위치로부터 거리가 rr 이하인 모든 점(반지름 rr의 원판)을 덮는다. 두 크레인을 함께 놓을 수 있으려면 두 원판이 서로 닿지 않아야 한다. 즉, 두 위치 사이의 거리가 두 팔 길이의 합보다 반드시 커야 한다.

안전 규정을 지키면서 표시된 위치들 중 크레인을 놓을 곳을 골라, 놓인 크레인들이 덮는 전체 넓이를 최대로 만들어라.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스의 첫째 줄에는 크레인을 놓을 수 있는 후보 위치의 수 CC가 주어지며, C≤15C \le 15이다. 이어지는 CC개의 줄에는 각각 세 정수 xx, yy, rr가 주어진다. 세 값은 모두 −10000-10000 이상 1000010000 이하이며, (x,y)(x, y)는 위치의 격자 좌표, rr는 그 위치에 놓을 수 있는 크레인의 팔 길이이다.

출력

각 테스트 케이스마다, 안전 규정을 지키면서 덮을 수 있는 최대 넓이를 AA라 할 때, A=B×πA = B \times \pi를 만족하는 정수 BB를 한 줄에 출력한다. 크레인 하나가 덮는 넓이는 πr2\pi r^2이고 놓인 원판들은 서로 겹치지 않으므로, BB는 서로 닿지 않게 고른 크레인들의 r2r^2 합의 최댓값과 같다.

예제1

  1. 예제 1

    입력
    1
    3
    0 0 4
    5 0 4
    -5 0 4
    
    
    예상 출력
    32