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

📄 2155.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 2155 on 2005-10-30 at 11:34:09 */ 
#include <cstdio>

const int INFINITE = 16000000;

inline int min(int, int);
int minDist(int, int, int, int, int);

int main()
{
	int lx, ly, lz, x, y, z;
	int path;

	while(scanf("%d %d %d %d %d %d", &lx, &ly, &lz, &x, &y, &z) == 6) {
		if(lx == 0 && ly == 0 && lz == 0 && x == 0 && y == 0 && z == 0) {
			return 0;
		} else {
			if(x*y*z == 0) {
				path = x*x + y*y + z*z;
			} else {
				if(x == lx) {
					path = minDist(lx, ly, lz, y, z);
				} else if(y == ly) {
					path = minDist(ly, lx, lz, x, z);
				} else {
					path = minDist(lz, lx, ly, x, y);
				}
			}
			printf("%d\n", path);
		}
	}
	
	return 0;
}

inline int min(int a, int b)
{
	return a < b ? a : b;
}
int minDist (int lx, int ly, int lz, int y, int z)
{
	int path = INFINITE;
	path = min(path, (lx+ly-y)*(lx+ly-y)+(ly+z)*(ly+z));
	path = min(path, (lx+z)*(lx+z)+y*y);
	path = min(path, (lx+y)*(lx+y)+z*z);
	path = min(path, (lx+lz-z)*(lx+lz-z)+(lz+y)*(lz+y));
	return path;
}

⌨️ 快捷键说明

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