Ice Walls
题号:NC232803
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

给出N个平面上与坐标轴平行且严格不相交的线段,穿过线段额外花费k时间,平面上移动一单位欧式距离花费1,求st的最短时间。
穿过线段指严格相交,经过线段端点以及沿着线段不算穿过。

输入描述:

输入以整数 T 开头,表示测试用例的数量。
对于每组数据,第一行是两个整数 N,表示线段数量和通过冰墙所需的时间。
接下来的 N 行,每行有四个整数 x1, y1, x2, y2,表示一段的两个端点,(x1, y1)(x2, y2)
下一行有两个整数xsys,代表起点s的坐标。
最后一行还有两个整数xtyt,表示目标点t的坐标。
保证 st 不在线段上
对于每个点,

输出描述:

对于每组数据,输出一行,其中包含从 st 所需的最短时间(以秒为单位)。
答案误差在内算正确。
示例1

输入

复制
3
1 1
1 0 1 2
0 0
2 0
1 1
1 -2 1 2
0 0
2 0
1 3
1 -2 1 2
0 0
2 0

输出

复制
2.000000
3.000000
4.472136

备注:

原题链接:https://vjudge.net/problem/HDU-5817