QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 256 MB 總分: 100

#4587. 稳定的行星系统

统计

年轻的天文学家 Emma 刚刚因其发现了一个新的行星系统以及她记录该行星系统的新颖方法,获得了国际宇宙与行星委员会(ICPC)颁发的奖项。

这个新的行星系统由一颗恒星和 $N$ 颗绕其运行的行星组成。所有这些行星都在同一个平面上运行,因此可以很容易地在二维平面上绘制出来。此外,每颗行星都有一个以恒星为中心的完美圆形轨道。所有行星都以相同的逆时针方向绕恒星旋转。

为了简化问题,恒星和每颗行星都被表示为一个点,且它们的大小可以忽略不计。恒星位于原点。

通过研究,Emma 记录了每颗行星的位置及其公转周期(行星绕恒星完成一整圈所需的时间)。具体来说,Emma 记录了每颗行星的 $R_i, \theta_i, T_i$,其中 $R_i, \theta_i$ 是其极坐标,$T_i$ 是其公转周期。极坐标 $R_i, \theta_i$ 表示它到恒星的距离为 $R_i$,与极轴(正 $x$ 轴)的夹角为 $\theta_i$。为了方便整数输入,角度 $\theta_i$ 乘以了 $1000$,因此其值在 $0$ 到 $359\,999$(含)之间,代表 $0^\circ$ 到 $359.999^\circ$ 之间的任意角度。

Emma 在同一时间(即 $t = 0$)记录了所有行星的位置。请注意,每颗行星在 $t > 0$ 时的位置取决于它们的公转周期。例如,一颗在 $t = 0$ 时位于 $\langle 3, 180\,000 \rangle$、公转周期为 $4$ 个单位的行星,在 $t = 1$ 时将位于 $\langle 3, 270\,000 \rangle$,在 $t = 1.5$ 时位于 $\langle 3, 315\,000 \rangle$;在 $t = 4$(其公转周期)时,该行星将完成一圈轨道并回到 $\langle 3, 180\,000 \rangle$。

Emma 假设,如果行星之间距离不太近,行星系统会更加稳定。由于尚未对这个新的行星系统进行分析,Emma 想知道这个新行星系统中所有行星对之间的最小距离。为了测量距离,Emma 简单地使用了二维平面上的欧几里得距离。

两颗行星之间的距离定义为这两颗行星所能达到的最近距离,即对于任何 $t \in [0, \infty)$。注意 $t$ 可以是实数。例如,假设有两颗行星 $\langle 3, 180\,000, 4 \rangle$ 和 $\langle 4, 0, 2 \rangle$。这两颗行星在 $t = 0$ 时的距离为 $7$ 个单位;它们相对于恒星处于对侧,即第一颗行星位于 $180^\circ$,而第二颗行星位于 $0^\circ$。当 $t = 2$ 时,第一颗行星将运行半个轨道,其位置变为 $\langle 3, 0 \rangle$,位于其 $t = 0$ 时位置的对侧。另一方面,第二颗行星将运行一整圈,因此其位置与 $t = 0$ 时相同,即 $\langle 4, 0 \rangle$。在这种情况下,它们的距离为 $1$ 个单位。这是这两颗行星所能达到的最近距离,因此这两颗行星之间的距离为 $1$ 个单位。

给定每颗行星在 $t = 0$ 时的位置和公转周期,你的任务是确定所有行星对之间的最小距离。如果存在两颗行星在任何 $t > 0$ 时发生碰撞(处于同一位置),则直接输出 $0$;这样的行星系统是不稳定的。

输入格式

输入的第一行包含一个整数 $N$ ($2 \le N \le 200\,000$),表示新行星系统中的行星数量。接下来的 $N$ 行,每行包含三个整数 $R_i, \theta_i, T_i$ ($1 \le R_i, T_i \le 10^8$; $0 \le \theta_i < 360\,000$),分别表示第 $i$ 颗行星在 $t = 0$ 时的极坐标位置 $\langle R_i, \theta_i \rangle$ 及其公转周期。极坐标 $\langle R_i, \theta_i \rangle$ 表示行星到恒星的距离为 $R_i$,与极轴的夹角为 $\theta_i$。保证在 $t = 0$ 时没有两颗行星处于相同位置。

输出格式

输出一个实数,表示题目描述中定义的行星对之间的最小距离。如果存在两颗行星在某一时刻发生碰撞,则输出 $0$。只要你的答案的绝对误差或相对误差不超过 $10^{-6}$,就会被接受。

样例

样例输入 1

3
1 55555 4
3 180000 4
4 0 2

样例输出 1

1

说明 1

在 $t = 0$ 时,行星的位置如下图所示。

最小距离可以从第 $2$ 颗和第 $3$ 颗行星在 $t = 2$ 时的位置对中获得。下图显示了 $t = 2$ 时行星的位置。

样例输入 2

3
100 0 2
100 270000 1
9 2000 3

样例输出 2

0

说明 2

第 $1$ 颗和第 $2$ 颗行星将在 $t = 0.5$ 时发生碰撞,即当它们都位于 $\langle 100, 90000 \rangle$ 时。

样例输入 3

2
10 0 2
1 90000 2

样例输出 3

10.0498756211

说明 3

第 $1$ 颗和第 $2$ 颗行星之间的距离将始终保持不变。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.