这一天,Sonetto 购买了她的第一艘飞船(可以看作一个凸多边形),并迫不及待地开始操作它。这艘飞船有一个触摸屏界面,用户可以在上面点击一个位置,飞船就会瞬间传送到该位置。然而,由于 Sonetto 买的是一艘走私飞船,在她点击某个位置后,系统会随机选择以点击位置为圆心、半径为 $R$ 的圆内的一个点,飞船会传送到该点。这一天,附近停着一艘 Mr.Cookie 的飞船,它也可以看作一个凸多边形。现在,给定 Sonetto 在屏幕上点击的位置,请你计算 Sonetto 的飞船与停在区域内的 Mr.Cookie 的飞船发生碰撞的概率。
由于 Sonetto 所处的空间是一个相当神秘的空间,Sonetto 的飞船最初可能与 Mr.Cookie 的飞船相交。然而,我们不需要关心 Sonetto 的初始位置。我们只需要关注她瞬间传送后,飞船的位置是否会与 Mr.Cookie 的飞船发生碰撞。
更具体地说,给定两个凸多边形 $A$ 和 $B$,以及一个圆 $P$(圆心为点 $X$,半径为 $R$)。你需要确定在圆 $P$ 内随机选择一点 $S$ 的概率,使得当凸多边形 $A$ 沿着向量 $\vec{OS}$($O$ 为原点 $(0,0)$)移动时,它变换为一个新的凸多边形 $A'$,且 $A'$ 与 $B$ 相交(相交意味着存在一点 $w$ 使得 $w \in A'$ 且 $w \in B$)。
输入格式
输入包含多个测试用例。第一行包含一个整数 $t(1 \le t \le 1200)$,表示测试用例的数量。接下来是各测试用例的描述。
第二行包含一个整数 $n(3 \le n \le 30000)$,表示凸多边形 $A$ 的顶点数。
接下来 $n$ 行,每行包含两个整数 $x_i, y_i(-10^8 \le x_i, y_i \le 10^8)$,表示凸多边形 $A$ 的第 $i$ 个点。点按逆时针顺序给出。
下一行包含一个整数 $m(3 \le m \le 30000)$,表示凸多边形 $B$ 的顶点数。
接下来 $m$ 行,每行包含两个整数 $x_i, y_i(-10^8 \le x_i, y_i \le 10^8)$,表示凸多边形 $B$ 的第 $i$ 个点。点按逆时针顺序给出。
最后一行包含三个整数 $x, y$ 和 $r$,表示圆 $P$ 的圆心位置和半径。$(-10^8 \le x, y \le 10^8, 1 \le r \le 10^8)$。
数据保证 $n$ 的总和不超过 $2 \cdot 10^5$。 数据保证 $m$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个浮点数,表示 $A'$ 与 $B$ 相交的概率(保留 4 位小数)。
样例
输入 1
2 5 0 -2 4 -1 4 0 1 1 0 0 4 0 -2 3 -1 2 1 1 0 -2 -2 3 4 -2 0 -1 -2 1 2 -1 2 3 2 0 5 1 3 1 1 -3 4
输出 1
0.5247 0.1185