AT_abc022_d [ABC022D] Big Bang
题目描述
自宇宙由宇宙大爆炸诞生以来,已知其一直在膨胀。
作为天文学家的高桥君,决定测量宇宙的膨胀速度。
高桥君在两个不同的日子里,观测了同样的 $N$ 颗星星的位置。星星的位置被记录为坐标平面上的点。也就是说,每一天的观测结果都是由 $N$ 个点组成的点集。
通过对比两次观测的结果,可以发现:对第一次观测得到的点集依次进行以下三种操作后,可以得到第二次观测的点集。
1. 沿同一方向平移相同的距离。
2. 以原点为中心旋转相同的角度。
3. 以原点为中心进行 $P$ 倍的相似放大($1 \leq P$)。也就是说,将点 $(a, b)$ 变换为点 $(a \times P, b \times P)$,对所有点都执行此操作。
如果能够求出 $P$ 的值,就可以计算出膨胀速度。
然而,当高桥君准备求 $P$ 时,不小心丢失了记录各点对应星星的数据。
因此,他向你这位优秀的程序员寻求帮助。
给定第一次和第二次观测的结果,请你求出 $P$ 的值。
输入格式
输入以如下格式从标准输入给出:
> $N$
> $Ax_1$ $Ay_1$
> $Ax_2$ $Ay_2$
> $\vdots$
> $Ax_N$ $Ay_N$
> $Bx_1$ $By_1$
> $Bx_2$ $By_2$
> $\vdots$
> $Bx_N$ $By_N$
- 第 $1$ 行给出高桥君观测到的星星数量 $N$,满足 $2 \leq N \leq 10^5$。
- 接下来的 $N$ 行中,第 $i$ 行给出第一次观测到的第 $i$ 颗星的位置的 $x$ 坐标和 $y$ 坐标,分别为两个整数 $Ax_i, Ay_i$,满足 $-15,000 \leq Ax_i, Ay_i \leq 15,000$。
- 再接下来的 $N$ 行中,第 $i$ 行给出第二次观测到的第 $i$ 颗星的位置的 $x$ 坐标和 $y$ 坐标,分别为两个整数 $Bx_i, By_i$,满足 $-10^9 \leq Bx_i, By_i \leq 10^9$。
- 在第一次和第二次观测中,不会有多颗星星出现在同一个点上。
- 第一次观测到的第 $i$ 颗星和第二次观测到的第 $i$ 颗星不一定是同一颗星。
输出格式
请输出 $P$ 的值,输出一行。如果输出的绝对误差或相对误差至少有一项不超过 $10^{-6}$,则视为正确。输出末尾需换行。
说明/提示
## 部分分
本题设有部分分。
- 对于满足 $1 \leq N \leq 3,000$ 的数据集,答对可得 $50$ 分。
- 对于满足 $1 \leq N \leq 10^5$ 的数据集,答对可再得 $50$ 分。总分为 $100$ 分。
## 样例解释 1
依次执行如下操作,可以将第一次观测的点集变换为第二次观测的点集:
1. 沿 $x$ 轴方向平移 $-0.5$,沿 $y$ 轴方向平移 $-0.5$。
2. 以原点为中心,顺时针旋转 $45^\circ$。
3. 以原点为中心放大 $2\sqrt{2}$ 倍。
因此 $P = 2\sqrt{2}$。
由 ChatGPT 4.1 翻译