BOJ 20386 Gleaming the Cubes

BOJ 20386 Gleaming the Cubes

문제 링크:

문제 내용

여러 개의 정육면체가 주어질 때, 모든 정육면체의 교집합의 부피를 구하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있습니다. 입력의 끝에는 0이 주어집니다.

각 테스트 케이스에 대해, 정육면체의 개수 nn이 먼저 주어지고, 다음 nn줄에 각 정육면체의 위치와 한 변의 길이가 주어집니다. (2n10002 \le n \le 1000)

각 정육면체의 모든 면은 xyxy, yzyz, 또는 zxzx 평면에 평행하게 배치되어 있으며, 그러한 정육면체의 위치는 x,y,zx, y, z좌표가 모두 최소인 꼭짓점의 좌표로 주어집니다.

출력

각 테스트 케이스에 대해, 문제의 정답을 한 줄에 출력합니다.

문제 풀이

스포일러

각 정육면체의 xx좌표, yy좌표, zz좌표의 범위를 계산합니다. 여러 개의 정육면체의 교집합은 직육면체이고, 이 직육면체의 xx, yy, zz좌표의 범위는 각 정육면체의 xx, yy, zz좌표 각각의 교집합의 범위와 같습니다.

각 좌표의 교집합 중에서 빈 것이 있으면 부피는 0, 아니면 세 개의 범위의 길이의 곱이 답이 됩니다.

Last updated on