pku1188.cpp

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 87 行

CPP
87
字号
#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 + =
减小字号Ctrl + -
显示快捷键?