#P1294. Not Too Convex Hull
Not Too Convex Hull
描述
“钉子与橡皮筋”,这是一群孩子(他们都是几何老师的子女)玩的一个游戏的富有启发性的名字。孩子们在一块木板上固定一些钉子,钉子是随机放置的。然后他们选择其中一个钉子作为原点,并准备数量为的橡皮筋。
挑战在于使用条橡皮筋来缠绕这些钉子,需满足以下条件: (i) 每条橡皮筋缠绕钉子的一个子集;(ii) 所有钉子都被某些橡皮筋缠绕;(iii) 除了原点钉子(所有橡皮筋都接触原点钉子)外,橡皮筋的缠绕部分不相互重叠;(iv) 橡皮筋必须形成至少有三个角的凸多边形;(v) 在所有可能的缠绕钉子的方式中,缠绕区域的总面积是最小的。图1展示了这个游戏的一个实例。

输入
你的程序应该处理这个游戏的多个实例。每个游戏描述的第一行包含两个整数和,分别表示橡皮筋的数量和钉子的数量(且)。接下来的行描述钉子的位置,每行包含两个整数和()。原点是输入中的第一个钉子。当时,表示输入结束。
在输入的所有实例中:
- 没有两个钉子在同一点;
- 没有三个钉子在同一条直线上;
- 原点钉子不属于所有钉子构成的凸包(也就是说,如果你用一条橡皮筋缠绕所有钉子,它不会接触原点钉子)。
输出
对于输入中的每个游戏,你的程序应该输出一行,描述缠绕区域的最小总面积。面积必须以实数形式打印,保留两位小数,最后一位小数进行四舍五入。输入中不会包含因四舍五入差异而产生显著影响的测试用例。
示例输入
2 5
0 0
9 4
-8 8
-10 -2
4 -8
2 6
0 0
3 6
-5 7
-4 -6
10 -10
3 5
0 0
示例输出
92.00
74.00
来源
2002年南美洲竞赛