AT_agc019_c.[AGC019C] Fountain Walk

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

都市 Nevermore 有 10810^8 条东西向的街道和 10810^8 条南北向的街道,所有街道都标号为 00 到 108−110^8-1。任意相邻两条东西向街道间的距离恰好为 100100 米,任意相邻两条南北向街道间的距离也恰好为 100100 米。

所有东西向街道与所有南北向街道都相互交叉。每个交叉点可用其所在的南北向街道编号 xx 和东西向街道编号 yy 来表示,记为点 (x, y)(x,\ y)。

该城市内有 NN 个喷泉,分别设置在交叉点 (Xi, Yi)(X_i,\ Y_i)。与普通的交叉点不同,这些交叉点上以交点为圆心画有半径为 1010 米的圆,作为喷泉的外周,圆内没有道路。

下图显示了城市一角的街道和喷泉的示例场景:

1f931bf0c98ec6f07e612b0282cdb094.png

市长们决定,在同一条街道上行走时不希望多次经过喷泉。因此,任意一条东西向街道上至多只会有一个喷泉,南北向街道也是如此。

市民只能在东西向、南北向的街道及喷泉的外周上通行。请计算从交叉点 (x1, y1)(x_1,\ y_1) 移动到 (x2, y2)(x_2,\ y_2) 所需步行的最短距离(单位:米)。

输入格式

输入以如下格式从标准输入读入。

x1x_1 y1y_1 x2x_2 y2y_2 NN X1X_1 Y1Y_1 X2X_2 Y2Y_2 :: XNX_N YNY_N

输出格式

输出从交叉点 (x1, y1)(x_1,\ y_1) 移动到 (x2, y2)(x_2,\ y_2) 所需步行的最短距离(单位为米)。若输出的绝对误差或相对误差不超过 10−1110^{-11},即可被认为是正确答案。

输入输出样例

  • 输入#1

    1 1 6 5
    3
    3 2
    5 3
    2 4

    输出#1

    891.415926535897938
  • 输入#2

    3 5 6 4
    3
    3 2
    5 3
    2 4

    输出#2

    400.000000000000000
  • 输入#3

    4 2 2 2
    3
    3 2
    5 3
    2 4

    输出#3

    211.415926535897938

说明/提示

限制条件

  • 0≤x1,y1,x2,y2<1080 \leq x_1, y_1, x_2, y_2 < 10^8
  • 1≤N≤200, ⁣0001 \leq N \leq 200,\!000
  • 0≤Xi,Yi<1080 \leq X_i, Y_i < 10^8
  • 当 i≠ji \neq j 时 Xi≠XjX_i \neq X_j
  • 当 i≠ji \neq j 时 Yi≠YjY_i \neq Y_j
  • (x1,y1)(x_1, y_1)、(x2,y2)(x_2, y_2) 不相同,且这些点上没有喷泉。
  • 所有输入为整数。

样例解释 1

下图给出了其中一条最短路径。起点为蓝点,终点为紫点,红线为途中路径。 c49e52b9b79003f61b8a6efa5dad8ba3.png

样例解释 2

f9090ab734c89424c413f3b583376990.png

样例解释 3

4b76416161f27cad20333a9ac636e00f.png

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页