atcoder#AGC019C. [AGC019C] Fountain Walk
[AGC019C] Fountain Walk
分数 : 分
问题陈述
在 Nevermore 城市,有 条街道和 条大道,编号从 到 。所有街道从西向东笔直延伸,所有大道从南向北笔直延伸。相邻街道和相邻大道之间的距离恰好为 米。
每条街道与每条大道相交。每个交点可以用对 来描述,其中 是大道 ID, 是街道 ID。
城市中有 个喷泉,位于交点 。与普通交点不同的是,喷泉的交点中心有一个半径为 米的圆,且该圆内没有道路部分。
下面的图片展示了城市部分区域的道路和喷泉可能的样子。
城市管理者不喜欢在同一条道路上遇到多个喷泉。因此,每条街道和每条大道上最多只能有一个喷泉。
市民可以沿着街道、大道和喷泉周边移动。要从交点 到达交点 ,需要覆盖的最短距离是多少?
约束条件
- ,当
- ,当
- 交点 和 不同且不包含喷泉。
- 所有输入值均为整数。
输入
输入来自标准输入,格式如下:
输出
打印从交点 到交点 所需覆盖的最短距离,以米为单位。若答案的绝对误差或相对误差不超过 ,则视为正确。
1 1 6 5
3
3 2
5 3
2 4
891.415926535897938
一种可能的最短路径如下面的图片所示。路径从蓝色点开始,到达紫色点,并沿着红色线行进。
3 5 6 4
3
3 2
5 3
2 4
400.000000000000000
4 2 2 2
3
3 2
5 3
2 4
211.415926535897938