QOJ.ac

QOJ

実行時間制限: 1.7 s メモリ制限: 512 MB 満点: 100

#10951. 四边形

統計

四边形是指一个具有四个不同顶点和四条不同边,且边与边之间没有交叉的多边形。如果一个四边形的所有内角均小于 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

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.