在一款 2D 物理電子遊戲中,兩個角色 $P$ 和 $Q$ 在戰場上移動。每個角色都由一個凸多邊形表示,作為其碰撞箱。當兩個碰撞箱重疊時,遊戲會計算它們交集的面積作為碰撞傷害。
然而,由於競技場內難以預測的風流,角色 $Q$ 會被任意平移向量 $\mathbf{t} = (t_x, t_y)$ 位移,但不會旋轉或翻轉。你需要計算當 $Q$ 均勻隨機地放置且確實與 $P$ 發生碰撞(亦即它們的交集具有正面積)時,碰撞傷害的期望值。
更正式地說,定義 $f(\mathbf{t})$ 為代表角色 $P$ 的多邊形與代表角色 $Q$ 的多邊形沿著 $\mathbf{t}$ 平移後的交集面積。設 $D \subseteq \mathbb{R}^2$ 為所有滿足 $f(\mathbf{t}) > 0$ 的平移向量 $\mathbf{t}$ 所成的集合。可以證明 $D$ 具有正面積,記為 $|D|$。你需要計算 $\frac{1}{|D|} \iint_D f(\mathbf{t})\,d\mathbf{t}$。
輸入
輸入的第一行包含一個整數 $T$($1 \le T \le 300$),代表測試資料的組數。對於每組測試資料:
- 第一行包含兩個整數 $n$ 和 $m$($3 \le n, m \le 1\,000$),分別代表兩個凸多邊形的頂點數量。
- 接下來有 $n$ 行,每行包含兩個整數 $x$ 和 $y$($-10^4 \le x, y \le 10^4$),給出代表角色 $P$ 的多邊形的頂點座標 $(x, y)$。
- 再接下來有 $m$ 行,每行包含兩個整數 $x$ 和 $y$($-10^4 \le x, y \le 10^4$),給出代表角色 $Q$ 的多邊形的頂點座標 $(x, y)$。
- 保證凸多邊形的頂點按逆時針順序給出,且沒有任何三個頂點共線。
保證所有測試資料中 $n$ 的總和與 $m$ 的總和皆不超過 $1\,000$。
輸出
對於每組測試資料,輸出一行包含一個實數,代表碰撞傷害的期望值。
若你的答案的絕對誤差或相對誤差不超過 $10^{-6}$,則視為正確。正式地說,假設你的輸出為 $a$,裁判的答案為 $b$,當且僅當 $\frac{|a - b|}{\max(1, |b|)} \le 10^{-6}$ 時,你的輸出才會被接受。
範例
輸入 1
2 3 3 0 0 1 0 0 1 0 0 1 0 0 1 3 3 0 0 1 0 0 1 0 1 1 0 1 1
輸出 1
0.083333333333 0.125000000000