CF613A Peter and Snow Blower

题目描述

Peter 收到了一台新年礼物——一台新型的扫雪机。当然,Peter 立刻决定试用一下。在阅读说明书后,他发现这台扫雪机的工作方式与普通的扫雪机不同。为了使其工作,你需要把它拴在某个它无法覆盖的点上,然后打开开关。结果,这台扫雪机会绕着这个点沿圆形轨迹移动,清除路径上的所有积雪。 形式化来说,我们假设 Peter 的扫雪机在平面上是一个多边形。当机器被启动后,它会绕着 Peter 搭拴的点旋转(该点严格位于多边形外部)。即多边形内部或边界上的每一个点都会以该点为圆心作圆周运动。 Peter 决定把机器绑在点 $P$ 上,现在他想知道最终会有多大面积的区域被清理干净。请你帮助他计算这一面积。

输入格式

输入的第一行包含三个整数——多边形的顶点数 $n$($3 \le n \le 10^5$)以及点 $P$ 的坐标。 接下来的 $n$ 行中,每行包含两个整数,表示多边形一个顶点的坐标,按顺时针或逆时针顺序给出。保证没有任意三个连续的顶点共线。 输入中的所有数都是绝对值不超过 $1000000$ 的整数。

输出格式

输出一个实数,表示最终被清理的区域的面积。若你的答案的绝对误差或相对误差不超过 $10^{-6}$,则被视为正确答案。 具体来说,记你的答案为 $a$,评测器的答案为 $b$,如果满足 $|a-b| \leq 10^{-6} \max(1, |b|)$,则答案正确。

说明/提示

在第一个样例中,被清理的区域如下图所示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF613A/d58837ea7895097f43b3c725628f9a11757bb6b3.png) 由 ChatGPT 5 翻译