1520 : 激光密室

时间限制Time Limit 1 Sec 内存限制Memory Limit 256 MB 提交次数Submitted 0 Times 通过次数Solved 0 Times 特判评测Special Judge

题目描述Description

在某秘密科研基地,你被困在一个宽为 W、高为 H 的矩形密室中。密室左下角坐标为 (0,0),右上角坐标为 (W,H),四面墙壁均为完美镜面,光线击中墙壁时发生完美反射(入射角等于反射角)。

你在点 S(s_x, s_y) 放置了一个高能激光发射器,在点 T(t_x, t_y) 放置了一个接收器。出于严格的安全通信协议,激光必须在墙壁上恰好反射 k 次后,才能被接收器正确解密与识别。

请你计算出:在所有恰好经过 k 次反射并击中接收器 T 的合法光路中,最短的光路长度是多少?

特别说明:

  • 中途拦截:光线在传播过程中,如果在第 mm < k)次反射时提前击中接收器 T,则光线被立刻吸收,路径无效;如果光线在反射中途再次经过发射器 S 自身,也会被实体阻挡而溃散,路径无效。
  • 角落规避:光线射向矩形四个直角角落的路径视为非法。保证在合法最优路径中,光线不会恰好经过密室角落。

输入格式Input

一行,包含 7 个整数 W\ H\ s_x\ s_y\ t_x\ t_y\ k,相邻整数之间用空格隔开。

输出格式Output

输出一行一个实数,表示最短的合法光路长度。如果不存在满足条件的路径,则输出 -1

本题采用 Special Judge,你的输出与标准答案的相对误差或绝对误差不超过 10^{-6} 即视为正确。

样例Sample

提示Hint

数据范围

对于 100 \% 的数据,保证:

  • 2 \le W, H \le 10^9

  • 0 < s_x, t_x < W0 < s_y, t_y < H

  • (s_x, s_y) \neq (t_x, t_y)

  • 1 \le k \le 500

出题Author

shepherdtoherd

来源Source

深圳技术大学第六届程序设计竞赛