#P3816. Pool Table

    ID: 2816 传统题 1000ms 256MiB 尝试: 9 已通过: 1 难度: 10 上传者: 标签>计算几何镜像反射最短路径2009 ACM ICPC Southeast USA Regional Programming Contest

Pool Table

题目描述

考虑一张台球桌,桌上有一个母球和一个目标球。母球必须先撞击一定数量的桌沿(即球桌边缘),然后击中目标球。求母球需要移动的最短距离。

假设桌沿为理想反射面(遵循反射定律),且球的直径可忽略不计。坐标系以球桌的一个角落为原点,球桌边缘与坐标轴对齐。若母球击中角落,视为同时撞击两个桌沿。母球必须先恰好撞击指定数量的桌沿,之后才能击中目标球。

输入

输入包含多个测试用例,每个测试用例占一行,包含七个整数:

LL WW CXCX CYCY TXTX TYTY NN

前两个整数 LLWW2L2 ≤ L,,W100W ≤ 100表示球桌的长和宽。接下来两对整数分别是母球和目标球的坐标X,Y(X,Y),满足 0<CX0 < CX,,TX<LTX < L0<CY0 < CY,,TY<WY < W,且CX,CY(CX,CY)TX,TY(TX,TY)不同。最后一个整数 NN0N100(0 ≤ N ≤ 100)表示必须撞击的台边次数。测试用例以包含七个 00 的行结束。

输出

对每个测试用例,输出一个十进制数,表示母球需要移动的最短距离,结果四舍五入到33位小数。每个结果占一行,输出之间无空行。

20 15 10 1 12 1 1
10 20 1 2 7 16 2
0 0 0 0 0 0 0
2.828
19.698

题目来源 2009 ACM ICPC 美国东南地区编程竞赛