#P16669. [Ctu2022]Needle
[Ctu2022]Needle
题目描述
Cimrman 的另一项意外发明,是一种能够自我平衡并主动运动的微型针。
它可以在没有任何外部支撑的情况下保持竖直,并在平面上自由移动。移动过程中,它能够画出极细的线和曲线,留下的痕迹只有几个分子宽。
现在正在进行另一项实验。
绘图平面上有若干实验点,这些点被划分成若干个点云。点云满足:
- 每个点云至少包含 个点;
- 每个点云的凸包面积为正;
- 任意两个点云的凸包互不相交。
另外给定起点 和终点 。这两个点都不位于任何点云凸包的内部。
一个点云的边界,指该点云凸包的边界。
针需要从 移动到 ,并满足:
- 不能进入任何点云凸包的内部;
- 可以沿任何点云凸包的边界移动。
请计算针从 到 的最短路径长度。
输入格式
第一行包含五个整数:
N Sx Sy Tx Ty
其中:
- 是点云数量;
- 是起点 ;
- 是终点 。
接下来 行描述各点云。
第 行首先包含整数 ,表示第 个点云中的点数,随后包含 个整数:
$$x_{i,1},y_{i,1},x_{i,2},y_{i,2},\ldots,x_{i,c_i},y_{i,c_i}.$$所有坐标均为 范围内的整数。
所有输入点两两不同。
保证:
且所有点云中的点数总和满足:
输出格式
输出一个实数,表示针从 到 的最短路径长度。
答案需要精确到小数点后 位。
样例
输入
1 0 0 10 0
3 4 2 7 3 5 -4
输出
11.8770543023
图示
蓝色粗线表示样例中的一条最短路径。
