거대한 덮개
시간 제한1초메모리 제한128 MB
직사각형 캠퍼스 위에 놓인 상자들을 모두 덮으면서 캠퍼스 경계 지면에 고정되고 볼록한 곡면의 최소 표면적을 구한다.
문제
뤼트여브룩 공과대학교의 한 학생이 캠퍼스의 건물을 모두 반투명 플라스틱 덮개 하나로 덮으려고 한다. 그러면 이 일대에서 우산을 쓸 일이 없어져 비용이 크게 줄어든다.
덮개 값은 넓이에 비례하므로 학생은 넓이가 가장 작은 덮개를 원한다. 그 최소 넓이를 계산하는 프로그램을 작성하라.
캠퍼스 부지는 평평한 직사각형이다. 건물은 모두 지면 위에 놓인 직육면체의 합집합이고, 직육면체끼리 겹칠 수 있다. 덮개는 건물을 남김없이 덮어야 하며 캠퍼스의 네 변에 지면 높이로 고정된다.
덮개는 팽팽하게 당겨져 있다. 즉 덮개와 지면이 둘러싸는 입체는 볼록하다. 이 조건을 만족하는 덮개 중에서 넓이가 가장 작은 것의 넓이를 구하라. 지면 직사각형 자체는 넓이에 포함하지 않는다.
입력
첫 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.
- 한 줄에 공백으로 구분된 정수 네 개 , , , 가 주어진다. 캠퍼스 부지는 이고, , 이다.
- 다음 줄에 건물을 이루는 직육면체의 개수 이 주어진다. 이다.
- 이어지는 개 줄 가운데 번째 줄에 공백으로 구분된 정수 다섯 개 , , , , 가 주어진다. 밑면이 이고 높이가 인 직육면체를 뜻한다. , , 이다.
여기서 는 데카르트 곱이며, 이고 인 점 전체가 이루는 직사각형 영역이다.
출력
각 테스트 케이스마다 최소 덮개의 넓이를 소수점 아래 넷째 자리까지 한 줄에 출력한다. 반올림은 통상적인 방식을 따른다. 버릴 자리의 첫 숫자가 5 이상이면 올리고, 그렇지 않으면 내린다.