Marcin 正在削一个土豆。为了简化问题,我们假设土豆是一个凸多边形$^{1}$,其边被称为皮。
Marcin 可以用刀进行直线切割。每次切割时,Marcin 选择一条直线,并沿着该直线进行切割。切割完成后,他会扔掉土豆的一部分。切割线上的所有点也会被扔掉,因此,例如当沿着包含土豆皮上某条边的直线进行切割时,该边会被削掉。
只有当土豆不包含原始皮上的任何点时,才称其为已削皮。Marcin 希望在削土豆时尽可能少做工作,因此他希望用有限次数的切割来完成。尽管如此,他还是希望最大化削好的土豆的面积。在最多进行 $k$ 次切割的情况下,能得到的已削皮土豆的最大面积是多少?
编写一个程序:
- 从标准输入读取土豆的描述,
- 在假设最多可以进行 $k$ 次切割的情况下,确定已削皮土豆的最大可能面积,
- 将结果写入标准输出。
$^{1}$凸多边形是指所有内角均小于 180° 的多边形。
输入格式
标准输入的第一行包含两个整数 $n$ ($3 \le n \le 100$) 和 $k$ ($3 \le k \le n$),由一个空格分隔,分别表示代表所考虑土豆的多边形的顶点数,以及 Marcin 希望进行削皮切割的最大次数。接下来的 $n$ 行包含土豆顶点的描述。它们按顺时针或逆时针顺序给出。每行包含两个整数 $x$ 和 $y$ ($-10\,000 \le x, y \le 10\,000$),表示土豆顶点的坐标。
输出格式
在标准输出的第一行且仅一行中,你的程序应写入一个实数,保留小数点后一位,表示在最多进行 $k$ 次切割的情况下,可以获得的已削皮土豆的最大面积。你不应进行四舍五入,小数点后的第二位及后续数字不影响结果。
样例
输入 1
5 3 0 0 3 1 6 4 3 7 0 8
输出 1
24.0
样例中的土豆可以通过如上所示的 3 次切割方式进行最优削皮。