SP28456 TAP2016B - Finding the way
题目描述
烘焙节到了,这是烘焙业小企业赚钱和推广自己的绝佳机会。任何想参与烘焙节的小企业都可以在活动大厅内搭建一个小摊位。出于安全,摊位需紧靠一面墙放置。在摊位上,企业可以展示产品并进行销售。摊位的重要特点之一是会提供一些产品的免费样品,吸引人们品尝,从而展示出高品质的食谱,诱导他们购买。
免费样品吸引了很多人来到活动现场,他们希望能在游览大厅时免费品尝到美味甜点。大部分参观者都会买下某些产品,以支持那些真正值得认可的商家。节日最著名的访客之一是贝尔先生,他总是走遍每个摊位品尝免费样品,甚至会为最佳摊位颁奖。
贝尔先生希望可以用最短的距离品尝所有摊位的样品,不浪费太多时间。为此,他使用节日手册上的地图,提前由组织者发布。地图显示了大厅的形状,是一个凸多边形,上面标记了 $N$ 个重要地点,其中两个是入口和出口,其他 $N-2$ 个是节日摊位。每个重要地点是多边形边界上的一个点。
贝尔先生希望你能帮助他完成这一任务。他会给出大厅中 $N$ 个重要地点的笛卡尔坐标 $(X, Y)$,按逆时针方向排列(即走在大厅内墙上,右手总是贴着墙的顺序)。他想知道,如果从入口开始,以最佳顺序访问所有摊位,最终到达出口,他需要行走的最短距离。
输入格式
输入文件包含多个测试用例。每个测试用例的第一行包括三个整数 $N$、$E$ 和 $S$。$N$ 表示地图上标记的重要地点数量,编号从 $1$ 到 $N$($2 \le N \le 4000$)。$E$ 和 $S$ 分别是入口和出口的编号($1 \le E, S \le N$ 且 $E \neq S$)。接下来的 $N$ 行中,每行包含两个整数 $X$ 和 $Y$,表示第 $i$ 个重要地点的坐标 $(X, Y)$($-10^4 \le X, Y \le 10^4$)。所有重要地点各不相同,并且总有一个凸多边形包含所有这些点在其边界上。
输出格式
对于每个测试用例,输出一行,表示贝尔先生从入口到出口访问所有摊位的最短行走距离。结果需保留小数点后 6 位,必要时进行四舍五入。
**本翻译由 AI 自动生成**