问题描述 |
---|
一个四边形称为凸四边形,如果四个内角都各自小于180°。 给定平面直角坐标系上n个点的坐标,保证其中任意三点不共线。现在想要从中找到尽可能多的四边形(每个点都可以作为顶点被不同的四边形无限次使用,不同的四边形之间可以自由重叠),因为每个四边形都可以为你带来一定的积分。设其中面积最小的四边形的面积为a,积分规则如下: 1、对于每个面积等于a的凸四边形,可以得到4点积分; 2、对于每个面积等于a的非凸四边形,可以得到3点积分; 3、对于每个面积大于a的凸四边形,可以得到2点积分; 4、对于每个面积大于a的非凸四边形,可以得到1点积分。 注意:但凡有内角不同,或有任意边不同,都看作不同的四边形;面积等于最小值的可能不止一个四边形;四边形面积和总积分都需要用长整型表示。 为了得到最多的积分,显然需要找到所有的四边形,并求出对应的积分。 |
输入描述 |
多组案例。一个正整数T,表示案例的数量。(T<=40) 每组案例中,先是一个正整数n,表示点的数量。(4<=n<=1000) 然后有n行数据,每行数据有两个整数,表示一个点的横坐标和纵坐标。(坐标范围在-1e9到1e9之间) 任意三个点都保证不共线。 |
输出描述 |
针对每组案例,输出一个长整数,表示可能得到的最大积分。 每组案例输出完都要换行。 |
样例输入复制样例 |
4 4 0 0 1 0 0 1 1 1 4 0 0 10 0 5 10 5 8 4 0 0 10 0 5 10 5 3 5 0 0 0 5 5 0 5 5 4 2 |
样例输出 |
4 5 7 14 |
来源 |
第八届信息学院编程大赛备用题 |