Universal Cup Judging System

Universal Cup

Time Limit: 1.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓
Statistics

假设地球是一个中心位于 $(0, 0, 0)$、半径为 $r$ 的球体,处于三维欧几里得空间中。有一架飞机正沿着地球表面从出发点到目的地之间的最短路径飞行。

作为一名航空爱好者,你拥有一个接收器,可以接收到距离不超过 $d$ 的飞行信号。注意,我们通过测量地球表面上的最短路径来计算两点之间的距离,这不是三维欧几里得空间中的欧几里得距离。你需要找到最小的 $d$,使得你可以在某个时刻通过位于你所在位置的接收器接收到来自飞机的信号。

输入格式

输入包含多组测试数据。第一行包含一个整数 $T$ ($1 \le T \le 10^4$),表示测试数据的组数。对于每组测试数据:

第一行包含一个整数 $r$ ($1 \le r \le 100$),表示地球的半径。

第二行包含三个整数 $a, b, c$ ($-100 \le a, b, c \le 100, a^2 + b^2 + c^2 > 0$),表示你所在位置的坐标为 $\left( \frac{ra}{\sqrt{a^2+b^2+c^2}}, \frac{rb}{\sqrt{a^2+b^2+c^2}}, \frac{rc}{\sqrt{a^2+b^2+c^2}} \right)$。

第三行包含三个整数 $u, v, w$ ($-100 \le u, v, w \le 100, u^2 + v^2 + w^2 > 0$),表示出发点的坐标为 $\left( \frac{ru}{\sqrt{u^2+v^2+w^2}}, \frac{rv}{\sqrt{u^2+v^2+w^2}}, \frac{rw}{\sqrt{u^2+v^2+w^2}} \right)$。

第四行包含三个整数 $x, y, z$ ($-100 \le x, y, z \le 100, x^2 + y^2 + z^2 > 0$),表示目的地的坐标为 $\left( \frac{rx}{\sqrt{x^2+y^2+z^2}}, \frac{ry}{\sqrt{x^2+y^2+z^2}}, \frac{rz}{\sqrt{x^2+y^2+z^2}} \right)$。

保证出发点和目的地不会重合,且在地球上不是互为对跖点。因此,地球表面上从出发点到目的地的最短路径是唯一确定的。

输出格式

对于每组测试数据,输出一行,包含一个实数,表示能够接收到信号的最小距离 $d$。

如果你的答案的绝对误差或相对误差不超过 $10^{-4}$,则视为正确。形式化地说,假设你的输出为 $a$,裁判的答案为 $b$,则当且仅当 $\frac{|a-b|}{\max(1,|b|)} \le 10^{-4}$ 时,你的输出被接受。

样例

输入 1

2
100
1 1 1
1 0 0
0 1 0
100
-1 -1 0
1 0 0
0 1 0

输出 1

61.547970867038734110
235.619449019234492887

说明

下图展示了第一个样例,其中 $P$ 是你所在的位置,$S$ 是出发点,$T$ 是目的地。

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.