在天空岛上,建筑师们总是使用“岛云”(IslandClouds)作为材料来建造各种奇妙的结构。今天,天空岛正在举办一场雕塑比赛。每位建筑师都需要用三种元岛云来建造精美的雕塑。这三种岛云分别是球体、立方体和正四面体,它们有不同的大小。当然,因为它们是云,一旦一个岛云接触到另一个岛云,它们就会粘在一起。
天空岛的著名建筑师阿西拉(Asira)正在努力创作他的伟大作品。他将执行一系列操作来建造他的雕塑。在每次操作中,他会挑选一个岛云,将其旋转,然后移动到足够高的地方,释放它,让它自由下落,直到它粘在另一个岛云或地面上(天空岛的地面也是由岛云构成的)。阿西拉只会在前一个岛云粘好后才释放下一个岛云。
形式上,你可以假设这三种类型的岛云最初处于下图中所示的姿态,它们的几何中心位于世界坐标系 $(xyz)$ 的 $(0, 0, 0)$ 处,且三个物体坐标轴 $(XYZ)$ 分别与对应的世界坐标轴 $(xyz)$ 重合。这里假设世界坐标系 $(xyz)$ 保持静止,而物体坐标系 $(XYZ)$ 与移动的物体固连,并随着每次旋转改变其方向。
立方体形状的岛云。
球体形状的岛云。
正四面体形状的岛云。
为了制作精美的雕塑,阿西拉在让岛云下落前,会按照以下过程对其进行旋转(这被称为 $zXZ - (\alpha, \beta, \gamma)$ 固有欧拉角):
- 物体 $(XYZ)$ 坐标系绕 $z$ 轴旋转 $\alpha$ 角,物体随之旋转。此时 $X$ 轴相对于 $x$ 轴的角度为 $\alpha$(遵循右手定则)。
- 物体 $(XYZ)$ 坐标系绕 $X$ 轴旋转 $\beta$ 角,物体随之旋转。
- 物体 $(XYZ)$ 坐标系绕 $Z$ 轴旋转 $\gamma$ 角,物体随之旋转。
注意,在岛云被释放之前,可以忽略它与其他岛云的碰撞。
此后,岛云被移动,使其中心位于世界坐标系中的 $(x, y, +\infty)$,然后被释放。随着岛云下落,$z$ 坐标开始减小,直到它接触到另一个岛云(下落岛云上的任意一点与另一个岛云上的任意一点重合)。一旦发生这种情况,岛云立即停止移动并被粘住,这意味着它永远不会再移动。别忘了,作为 $xOy$ 平面的地面也是由岛云构成的。
现在,阿西拉想知道每个岛云粘好后其最高点的 $z$ 坐标。
输入格式
输入包含多个测试用例。第一行包含一个整数 $T$ ($1 \le T \le 1000$),表示测试用例的数量。
对于每个测试用例,第一行包含一个整数 $n$ ($1 \le n \le 1000$),表示阿西拉使用的岛云数量。接下来的 $n$ 行中,第 $i$ 行 ($1 \le i \le n$) 包含七个整数 $type_i, \alpha_i, \beta_i, \gamma_i, x_i, y_i$ 和 $r_i$ ($0 \le type_i \le 2, 0 \le \alpha_i, \beta_i, \gamma_i < 360, -10^4 \le x_i, y_i \le 10^4, 1 \le r_i \le 10^4$),分别表示阿西拉按时间顺序使用的第 $i$ 个岛云的类型(0 代表立方体,1 代表球体,2 代表正四面体)、旋转的欧拉角、释放前的 $x, y$ 坐标以及大小(球体为半径,立方体和正四面体为边长)。
注意 $\alpha_i, \beta_i, \gamma_i$ 的单位是度。
保证所有测试用例中 $n$ 的总和不超过 $1000$。
输出格式
对于每个测试用例,输出 $n$ 行,其中第 $i$ 行 ($1 \le i \le n$) 包含一个实数,表示第 $i$ 个岛云粘好后其最高点的 $z$ 坐标。如果你的答案与标准答案的绝对误差或相对误差不超过 $10^{-4}$,则视为正确。
样例
样例输入 1
3 2 0 45 90 270 0 0 2 1 11 45 14 0 0 1 2 0 45 90 0 0 0 2 1 112 345 67 8 9 99 1 2 191 98 10 25 25 2
样例输出 1
2.000000000000001 4.000000000000001 2.000000000000001 199.384661561446364 1.950447343314250