你正在开发一款新的电脑游戏。让我们考虑海洋中间的一个岛屿,它位于一个 $z$ 轴朝上的三维空间中。海平面是一个 $z=0$ 的水平面。
该岛屿是一个特殊形式的多面体。
给定 $n$ 个点 $(x_i, y_i, z_i)$;它们之间存在一些边。如果我们从上方观察该岛屿,或者如果我们丢弃每个点的 $z$ 坐标,这些点和边构成一个平面连通图。该平面图的每个面(外部面除外)都是一个非退化三角形。图的每条边都至少属于一个内部面。所有位于平面图外部面边缘上的点的 $z$ 坐标都等于零。其他点可以具有任意非负的 $z$ 坐标。平面图的每个面对应于具有相同顶点的多面体的面。
由于全球变暖,海平面正在上升并淹没岛屿。你的任务是为游戏计算各种全球变暖场景。
在每个场景中,海平面上升到高度 $h$,使得海平面成为平面 $z=h$。岛屿中高度低于或等于 $h$ 的部分现在被淹没,即使某些部分可能无法通过水从海洋到达(参见第二个示例的插图)。在一个场景中,玩家站在第 $p$ 个点。你需要计算玩家所处岛屿部分的表面积,或者确定玩家所处位置处于或低于水位线并已溺水。
形式上,我们称岛屿表面上的两个点属于同一部分,如果玩家可以通过在岛屿表面行走,且始终保持在海平面之上,从而在它们之间移动。注意,你应该计算岛屿本身的表面积,而不是它在水平面上的投影面积。
输入格式
第一行包含一个整数 $n$ —— 点的数量 ($1 \le n \le 10^5$)。
接下来的 $n$ 行,每行包含三个整数 $x_i, y_i$ 和 $z_i$ —— 第 $i$ 个点的坐标 ($-10^6 \le x_i, y_i \le 10^6; 0 \le z_i \le 10^6$)。
下一行包含一个整数 $m$ —— 平面图内部面的数量 ($1 \le m \le 10^5$)。它们也是岛屿多面体的面。
接下来的 $m$ 行,每行包含三个整数 $a_i, b_i$ 和 $c_i$ —— 作为第 $i$ 个内部面顶点的三个点的索引 ($1 \le a_i, b_i, c_i \le n$)。
保证如果丢弃 $z$ 坐标,则所得图形是一个连通的平面图。除外部面外,其所有面都是非退化三角形。所有位于平面图外部面边缘上的点的 $z$ 坐标都等于零。
下一行包含一个整数 $q$ —— 要计算的全球变暖场景数量 ($1 \le q \le 10^5$)。
接下来的 $q$ 行,每行包含两个整数 $h_i$ 和 $p_i$ —— 海平面高度和玩家所站点的索引 ($0 \le h_i \le 10^6; 1 \le p_i \le n$)。
输出格式
对于每个场景,输出一个实数 —— 玩家所处岛屿部分的表面积。如果玩家的位置被水淹没,则输出 $-1$。
如果绝对误差或相对误差不超过 $10^{-6}$,则答案被认为是正确的。
样例
样例输入 1
5 0 0 0 2 0 0 2 2 0 0 2 0 1 1 4 4 1 2 5 2 3 5 3 4 5 4 1 5 7 0 1 0 5 1 5 2 5 3 5 4 5 5 5
样例输出 1
-1 16.492422502470642 9.276987657639736 4.123105625617661 1.030776406404415 -1 -1
样例输入 2
16 0 5 0 1 2 0 2 5 5 3 7 0 4 0 0 4 3 5 5 5 1 6 2 0 6 6 5 7 4 4 7 8 0 8 2 0 9 4 0 4 6 4 6 3 3 2 4 5 22 11 10 9 12 8 10 2 6 5 9 10 7 8 15 6 16 3 6 15 6 7 7 3 14 8 10 15 11 13 10 16 6 2 12 10 13 10 7 15 16 3 2 3 4 1 14 7 9 11 9 4 3 6 7 5 6 8 14 4 3 3 1 2 9 4 14 7 0 7 1 7 1 16 2 10 3 9 4 16 5 16
样例输出 2
120.483405354306325 -1 93.929895222484783 68.181919663536940 40.918561474148331 11.067441790921070 -1
说明
示例的插图是从上方观察岛屿的视图。海洋被阴影线覆盖。岛屿用等高线绘制,较高部分颜色较深。
第二个示例中的岛屿外观如下: