Parallelepiped walk
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 9.765625 M,其他语言19.53125 M
64bit IO Format: %lld

题目描述

Two points A(x1, y1, z1) and B(x2, y2, z2) are placed on the surface of parallelepiped P = {(x, y, z): 0 <= x <= L, 0 <= y <= W, 0 <= z <= H} with L*W*H dimensions (see figure). These two points can be linked with various curves lying on the surface of P. You are to find out the square of the shortest curve length.

Parallelepiped dimensions L, W, H and coordinates of the points are integers, 0 <= L,W,H <= 1000.

输入描述:

Input contains (in indicated order): L, W, H, x1, y1, z1, x2, y2, z2. The numbers are separated with spaces and end-of-line characters.

输出描述:

Output should contain the square of the shortest curve length between points A and B on the surface of P.
示例1

输入

复制
5 5 2
3 1 2
3 5 0

输出

复制
36