Zayin 正在家里练习魔法。他的家是一个无限大的二维平面。他可以召唤一个火球,将一个圆形区域烧成废墟。为了防止房子变成废墟,他的父亲 Nothingnuo 必须施展护盾魔法。护盾可以保护一个圆形区域不被摧毁。
这个游戏重复 $N$ 次。每次 Zayin 召唤一个火球,Nothingnuo 放置一个护盾。爆炸后,该护盾在未来将不再起作用。这个过程留下了一些(或没有)被摧毁的区域,并且这些区域永远不会恢复。
Nothing 对被摧毁区域的并集感到好奇。
Zayin 的第 $i$ 个火球摧毁了一个圆形区域,其圆心位于 $(X_i, Y_i)$,半径为 $R_i$。Nothing 的护盾描述类似。更多细节请参考输入格式。
简而言之:共有 $2N$ 个圆。它们可以描述为 $\{X_1, Y_1, R_1\}, \{X_2, Y_2, R_2\} \dots \{X_N, Y_N, R_N\}$ 和 $\{x_1, y_1, r_1\}, \{x_2, y_2, r_2\} \dots \{x_N, y_N, r_N\}$。$(X, Y)$ 是圆心坐标,$R$ 是半径。你需要计算 $AreaSize(\cup_{i=1}^N \{X_i, Y_i, R_i\} \setminus \{x_i, y_i, r_i\})$。
输入格式
第一行包含一个整数 $T(1 \le T \le 30)$,表示测试用例的数量。 每个测试用例以一个正整数 $N(1 \le N \le 500)$ 开始。 接下来的 $N$ 行给出了圆的描述。第 $i$ 行包含 6 个整数:$X_i, Y_i, R_i, x_i, y_i, r_i$。 $(|X|, |Y|, |x|, |y| \le 1000, 0 \le R, r \le 200)$。
注意:保证所有 $\{X_i, Y_i, R_i\}$ 互不相同,且所有 $\{x_i, y_i, r_i\}$ 互不相同。但可能存在 $i, j$ 使得 $\{X_i, Y_i, R_i\}$ 和 $\{x_j, y_j, r_j\}$ 相同。
输出格式
对于每个测试用例,输出被摧毁区域的面积。 绝对误差在 $10^{-2}$ 以内的结果将被视为正确。
样例
输入格式 1
2 1 0 0 2 0 0 1 2 0 0 2 2 0 2 2 2 2 2 3 3 0 5 1
输出格式 1
9.424778 19.707963
说明