1 条题解
-
0
解题提示
- 逐个计算立方体的相交区域
- 注意处理立方体不相交的情况
- 相交立方体的边界计算是关键
#include <iostream> #include <cstdio> using namespace std; struct Point { int x, y, z; }; int main() { Point a, b, c; int n, d; while(~scanf("%d", &n) && n) { scanf("%d %d %d %d", &a.x, &a.y, &a.z, &d); b.x = a.x + d; b.y = a.y + d; b.z = a.z + d; for(int i = 1; i < n; i++) { scanf("%d %d %d %d",&c.x, &c.y, &c.z, &d); a.x = max(c.x, a.x); a.y = max(c.y, a.y); a.z = max(c.z, a.z); b.x = min(c.x + d, b.x); b.y = min(c.y + d, b.y); b.z = min(c.z + d, b.z); } printf("%d\n", max((b.x - a.x) * (b.y - a.y) * (b.z - a.z), 0)); } return 0; }
- 1
信息
- ID
- 189
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者