#P2977. Box walking

Box walking

三维立方体表面最短路径问题

题目描述

给定一个长宽高为整数 lx×ly×lzlx \times ly \times lz 的三维立方体。立方体的边与坐标轴对齐,且其中一个角位于坐标原点 (0,0,0)(0, 0, 0)。现给定立方体表面某一点 (x,y,z)(x, y, z),要求计算从 (0,0,0)(0, 0, 0) 出发沿立方体表面到 (x,y,z)(x, y, z) 的最短路径长度的平方。

例如:若 lx=1lx = 1ly=2ly = 2lz=1lz = 1,则从 (0,0,0)(0, 0, 0)(1,2,1)(1, 2, 1) 的最短路径为:

  1. (0,0,0)(0, 0, 0) 走到 (1,1,0)(1, 1, 0)
  2. 再从 (1,1,0)(1, 1, 0) 走到 (1,2,1)(1, 2, 1)
    总路径长度为 8\sqrt{8},因此输出 88

输入格式

输入包含多个测试用例,每个用例为一行六个整数 lxlx, lyly, lzlz, xx, yy, zz,其中 1lx,ly,lz10001 \leq lx, ly, lz \leq 1000
注意:立方体可能存在体积为零的情况(如 lx=0lx = 0),但保证 (x,y,z)(x, y, z) 一定位于立方体的某个表面上。
输入以 lx=ly=lz=x=y=z=0lx = ly = lz = x = y = z = 0 结束,且此用例无需处理。

输出格式

对每个测试用例,输出一个正整数,表示最短路径长度的平方(路径长度的平方始终为整数)。

示例输入

1 1 2 1 1 2
1 1 1 1 1 1
0 0 0 0 0 0

示例输出

8
5

来源

Stanford Local 2005