Description
派蒙在平面上放置了n+1个互异的点,其中有一特殊点O=(0,0),并记其余点为S。
我们称一个点集 U 为strict convex set,当且仅当点集中点的个数大于等于3(∣U∣≥3)且U中的所有点位于U构成的凸包上,且任意三点不共线。
你需要将S划分为两个集合 A 和B,使其满足
-
A∩B=∅.
-
A∪B=S.
-
∣A∣≥2,∣B∣≥2.
-
点集 A∪{O} 是 strict convex set,并记它的凸包为CA∪{O}。
-
点集 B∪{O}是 strict convex set,并记它的凸包为 CB∪{O}。
-
CA∪{O}和 CB∪{O} 的轮廓 仅在 O相交。 这也就是说,仅有点O既在CA∪{O}的轮廓上,又在CB∪{O}的轮廓上。
请协助派蒙计算出这两个凸包周长之和的最大值。
这也就是说,找到一个合法的划分方案A 和 B,使得 $(L(C_{\mathbb{A} \cup \{O\}}) + L(C_{\mathbb{B} \cup \{O\}}))$最大,其中L(polygon)代表多边形的周长。
多组测试数据,第一行给出数据组数 T。
第一行给出一个整数 n (4≤n≤5×105) ,表示 S 中点的个数。
接下来n行,第i行 包含两个整数 xi 和 yi (−109≤xi,yi≤109, (xi,yi)=(0,0)) 表示 S 中第 i个点的坐标。
保证同一组测试数据中的点互异,但可能存在三点共线。
保证 所有测试数据中n之和不超过 106.
每组测试数据单起一行输出一个整数,表示两个凸包的周长之和的最大值。如不存在合法的划分方案,输出0。
与标准答案的相对或绝对误差小于 10−6的答案会被视作正确答案。
3
4
0 3
3 0
2 3
3 2
5
4 0
5 -5
-4 -2
1 -2
-5 -2
4
0 1
1 0
0 2
1 1
17.2111025509
36.6326947621
0.0000000000