볼록 껍질의 표면적

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

문제

어떤 3차원 도형이 볼록(convex)하다는 것은, 도형 내부의 임의의 두 점을 잇는 선분이 항상 그 도형 안에 완전히 포함된다는 뜻이다. 3차원 공간의 점 집합 XX에 대해, XX볼록 껍질(convex hull)XX의 모든 점을 포함하는 가장 작은 볼록 도형이다.

예를 들어 X={(0,0,0), (10,0,0), (0,10,0), (0,0,10)}X = \{(0,0,0),\ (10,0,0),\ (0,10,0),\ (0,0,10)\}이라고 하자. XX의 볼록 껍질은 XX의 네 점을 꼭짓점으로 하는 사면체이다. 이 사면체는 점 (1,1,1)(1,1,1)을 포함하므로, (1,1,1)(1,1,1)XX에 추가해도 볼록 껍질은 변하지 않는다.

XX가 주어질 때, 그 볼록 껍질의 표면적을 구하여 가장 가까운 정수로 반올림한 값을 구하라.

참고: 볼록 껍질의 모든 면은 다각형이다. 이 문제에서는 볼록 껍질의 한 면 위에 놓이는 XX의 점이 최대 33개라고 가정해도 된다(즉, 모든 면은 삼각형이다).

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 점의 개수를 나타내는 정수 nn (4n254 \le n \le 25)으로 시작한다. 이어지는 nn개의 줄에는 각각 한 점의 xx, yy, zz 좌표를 나타내는 정수 세 개가 주어진다. 모든 좌표는 100x,y,z100-100 \le x, y, z \le 100을 만족한다.

입력의 끝은 n=0n = 0인 줄로 표시되며, 이 케이스는 처리하지 않는다.

출력

각 테스트 케이스마다 볼록 껍질의 표면적을 가장 가까운 정수로 반올림하여 한 줄에 출력한다(예: 2.4992.49922로, 2.52.533으로 반올림된다).

힌트

반올림 오차로 인한 모호함을 피하기 위해, 모든 정답은 반올림 경계에서 최소 0.0010.001 이상 떨어지도록 테스트 데이터가 구성되어 있다(예를 들어 표면적이 정확히 2.49972.4997인 경우는 없다).