四边形是指一个具有四个不同顶点和四条不同边,且边与边之间没有交叉的多边形。如果一个四边形的所有内角均小于 180 度,则称其为凸四边形,否则称为非凸四边形。下图展示了一个凸四边形(左)和一个非凸四边形(右)。
在一个测试问题中,给定平面上的一个点集 $P$,其中任意三点不共线。你需要通过连接 $P$ 中的四个点来尽可能多地找出四边形,其中 $P$ 中的每个点都可以被无限次使用,且你找到的四边形可以自由重叠。根据你找到的四边形的形状和面积,你将获得不同的积分。原则上,凸四边形和面积最小的四边形会获得更多的积分。
更具体地说,积分规则如下,其中 $a$ 表示通过连接 $P$ 中的四个点所能形成的所有四边形的最小面积:
- 对于每个面积恰好为 $a$ 的不同凸四边形,你获得 4 积分。
- 对于每个面积恰好为 $a$ 的不同非凸四边形,你获得 3 积分。
- 对于每个面积严格大于 $a$ 的不同凸四边形,你获得 2 积分。
- 对于每个面积严格大于 $a$ 的不同非凸四边形,你获得 1 积分。
注意,两个四边形是不同的,除非它们的顶点和边完全相同。此外,可能存在两个或多个面积均为 $a$ 的四边形。
你当然希望找出所有可能的四边形并获得尽可能多的总积分。给定平面上的一个点集 $P$(包含 $n$ 个点),编写一个程序,输出当你找出点集 $P$ 中所有可能的四边形时,所能获得的最大总积分。
输入格式
程序从标准输入读取数据。输入的第一行包含一个整数 $n$ ($4 \le n \le 1,000$),表示点集 $P$ 中的点数。接下来的 $n$ 行,每行包含两个整数,范围在 $-10^9$ 到 $10^9$ 之间,表示点集 $P$ 中一个点的坐标。点集 $P$ 中不存在三点共线的情况。
输出格式
程序将结果写入标准输出。输出仅一行,包含一个整数,表示从点集 $P$ 中所能获得的最大总积分。
样例
输入 1
4 0 0 1 0 0 1 1 1
输出 1
4
输入 2
4 0 0 10 0 5 10 5 8
输出 2
5
输入 3
4 0 0 10 0 5 10 5 3
输出 3
7
输入 4
5 0 0 0 5 5 0 5 5 4 2
输出 4
14