⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pku1188.cpp

📁 这是ACM 方面的资料 是PKU的 北京大学的出来的
💻 CPP
字号:
#include <stdio.h>

typedef struct Cube
{
	int sx, sy, sz;
	int x, y, z;
} Cube;

Cube A, B;

int Min(int x, int y)
{
	return x < y ? x : y;
}

int Max(int x, int y)
{
	return x > y ? x : y;
}

void Add()
{
	int as, ae, bs, be, ns, ne;
//x
	as = A.sx;
	ae = A.sx + A.x;

	bs = B.sx;
	be = B.sx + B.x;
	
	ns = Max(as, bs);
	ne = Min(ae, be);

	A.sx = ns;
	A.x = ne > ns ? ne - ns: 0;
//y
	as = A.sy;
	ae = A.sy + A.y;

	bs = B.sy;
	be = B.sy + B.x;
	
	ns = Max(as, bs);
	ne = Min(ae, be);

	A.sy = ns;
	A.y = ne > ns ? ne - ns: 0;
//z
	as = A.sz;
	ae = A.sz + A.z;

	bs = B.sz;
	be = B.sz + B.x;
	
	ns = Max(as, bs);
	ne = Min(ae, be);

	A.sz = ns;
	A.z = ne > ns ? ne - ns: 0;

}

int main()
{
	int N, i, sx, sy, sz, a;
	while (scanf("%d", &N) != -1 && N)
	{
		scanf("%d %d %d %d", &sx, &sy, &sz, &a);
		
		A.sx = sx;
		A.sy = sy;
		A.sz = sz;

		A.x = a;
		A.y = a;
		A.z = a;
		
		for (i = 1; i < N; i++)
		{
			scanf("%d %d %d %d", &B.sx, &B.sy, &B.sz, &B.x);
			Add();
		}
		printf("%d\n", A.x * A.y * A.z);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -