#P1518. Problem Bee

Problem Bee

描述

想象一个无限延伸的笛卡尔平面上完美形成的蜂窝结构。它是由全等的正六边形组成的交错网格。其中一个六边形的中心位于坐标原点,且有两个顶点位于XX轴上。一只蜜蜂在飞行时必须非常小心,以免在这无限平面中迷路。为了从任意点AA到达另一个任意点BB,它会先从AA飞到其所在六边形的精确中心,然后沿直线飞向相邻六边形的中心。它会依次从一个中心飞到相邻的中心,直到到达包含点BB的六边形。在目标六边形中,它会从中心飞到点BB。在所有情况下,蜜蜂都会按照规则选择一条距离最短的路径。下图展示了从点AA到点BB的一条可能的最短路径。

输入

输入每行包含55个浮点数。第一个数字是六边形的边长(单位:厘米),接下来的两个数字是点AAxxyy坐标,最后两个数字是点BBxxyy坐标。输入以一行五个零结束。点AA和点BB都不会恰好位于六边形的边界上。

输出

对于每行输入,输出从点A到点B的最小路径长度(单位:厘米),保留到小数点后三位。

输入数据 1

1.0 -3.2 2.2 3.3 0
9 1 4 5 1
0.1 .09 0 .21 0
0 0 0 0 0

输出数据 1

7.737
5.000
0.526

来源 Greater New York 2000