#CF2041L. 建造城堡

建造城堡

L. 建造城堡
每个测试点时间限制:10 秒
内存限制:1024 MB

A-Ju 有一座华丽的城堡,她经常喜欢住在里面。然而,长时间住在城堡里让她感到厌倦。因此,她决定将城堡重建为某种特定形状,使其更加美观。

我们将 A-Ju 的城堡表示为一个二维平面上的凸多边形 ^{*}。A-Ju 的目标是将城堡重建为一个中心对称的凸多边形。这里,一个多边形是中心对称的,如果存在一个中心点 cc,使得对多边形内的任意一点 pppp 关于 cc 的反射点 pp' 也在多边形内。

尽管设计任意一个中心对称的凸多边形很容易,但重建的成本非常高。经过估算,A-Ju 发现重建成本与原城堡和新城堡之间的对称差集面积 ^{\dagger} 成正比。下图展示了一个例子:

示例图

在上面的例子中,A-Ju 的城堡是由点 (3,7)(2,1)(6,3)(3,7)-(2,1)-(6,3) 构成的凸多边形。将其重建为由点 $(3,7)-(\frac{7}{3},3)-(\frac{13}{3},\frac{1}{3})-(5,\frac{13}{3})$ 构成的多边形后,两个多边形之间的对称差集面积为 113\frac{11}{3}。这个差值可以表示为额外增加的区域(绿色网格区域)与被削去的区域(红色线条区域)的面积之和。

请编写一个程序,帮助 A-Ju 设计新城堡的蓝图,使得原城堡与新城堡之间对称差集的面积最小。你只需要输出这个最小值,因为 A-Ju 想先估算成本。


^{*} 一个多边形 PP凸的,如果对于任意两点 p,qPp, q \in P,连接它们的线段也完全包含在 PP 内,即对所有 t[0,1]t \in [0,1]tp+(1t)qPtp + (1-t)q \in P。等价地,它是一个所有内角都小于 180180^\circ 的多边形。

^{\dagger} 两个多边形的对称差集是指属于恰好其中一个多边形的那部分平面区域。


输入
第一行包含一个整数 nn,表示组成 A-Ju 城堡的多边形的顶点数。
接下来 nn 行,第 ii 行包含两个整数 xi,yix_i, y_i,表示第 ii 个顶点的坐标。顶点按逆时针顺序给出。

  • 3n5003 \le n \le 500
  • xi,yi104|x_i|, |y_i| \le 10^4
  • 顶点按逆时针顺序给出,保证构成一个凸多边形,且不存在三点共线。

输出
输出一行一个实数,表示原城堡与新城堡之间对称差集的最小面积。
如果你的答案与标准答案的绝对或相对误差不超过 10410^{-4},则视为正确。即,设你的答案为 aa,标准答案为 bb,若 abmax(1,b)104\frac{|a-b|}{\max(1,|b|)} \le 10^{-4},则接受。


示例

输入

3
2 1
6 3
3 7

输出

3.666666666667

输入

4
0 0
5 0
5 5
0 5

输出

0.000000000000