#icpc2016autumng. [icpc2016autumn_g]Share the Ruins Preservation
[icpc2016autumn_g]Share the Ruins Preservation
题目描述
两个组织“国际建筑遗产保护协会”(ICPC)和“日本考古学家组”(JAG)致力于遗址保护。最近,在某个区域发现了许多废墟。两个组织决定通过将一些废墟分配给ICPC和其他废墟分配给JAG来共同保护这些废墟。
现在,ICPC和JAG制定了以下分配规则:
- 从北到南划一条垂直的直线,避免与废墟相交。
- 位于线的西侧的废墟由ICPC保护。另一方面,位于线的东侧的废墟由JAG保护。(有可能线的东/西侧没有废墟;在这种情况下,ICPC/JAG将不保护任何废墟。)
这个问题是如何划出一条直线。对于每个组织,保护其指定的废墟的方法是围绕一堵篱笆使所有指定的废墟都在该篱笆所包围的区域内。此外,他们应该尽量减少用于预算的篱笆长度。如果被围住的区域很大,则需要昂贵的维护费用。因此,他们希望最小化总的保护费用,即两堵篱笆所围住的区域的面积之和。你的任务是编写一个计算通过绘制适当的直线得到的两堵篱笆所围住的区域的最小总保护费用的程序。
输入
输入包含一个测试用例。
...
第一行包含一个整数(),表示发现的废墟数量。以下行表示废墟的位置。其中第行是两个整数和,表示第个废墟位于某个位置东、北。对于废墟,你可以假设以下情况:
- 你可以忽略废墟的大小。也就是说,你可以将废墟视为点。
- 没有两个废墟具有相同的位置。
输出
输出通过绘制适当的直线得到的最小总保护费用。你应该将费用四舍五入到最近的整数。
示例1
输入
8
-10 0
-10 5
-5 5
-5 0
10 0
10 -5
5 -5
5 0```
输出
```plain
50```
### 示例2
输入
```plain
5
0 0
0 1
0 2
1 0
1 1```
输出
```plain
0```
### 示例3
输入
```plain
6
1 5
1 6
0 5
0 -5
-1 -5
-1 -6```
输出
```plain
6```
### 示例4
输入
```plain
10
2 5
4 6
9 5
8 8
1 3
6 4
5 9
7 3
7 7
3 9```
输出
```plain
17```