QOJ.ac

QOJ

時間限制: 7 s 記憶體限制: 1024 MB 總分: 100 可 Hack ✓

#14260. Roundelays

统计

圆舞(Roundelay)是一种人们手拉手围成一个圈跳舞的游戏,有些人可能会站在圈的中间。你看到孩子们分成了两组(两个圆舞)在玩这个游戏。不幸的是,你完全忘记了谁和谁在手拉手。你唯一记得的两件事是:两组(包括手拉手的孩子和在中间的孩子)的人数相同,并且在所有可能的手拉手配置中,两个圆舞中间的孩子总数是最小的。

每个孩子的位置由 $xy$ 平面上的二维坐标给出,你可以在每对拉手的孩子的位置之间画一条线段,使得任意两条线段都不相交。每个圆舞至少有三个孩子互相拉手(即不在圆舞的中间),并且所有这些孩子都面向圆舞的内部。拉手时,他们的手臂在他们所面对的方向上形成小于 $180^\circ$ 的角。你的任务是找出在两个圆舞中间的孩子数量。

图 1:两个圆舞的示例配置。

例如,在上图中,有 10 个孩子,坐标分别为 $(1, 1)$、$(-1, -1)$、$(-1, 1)$、$(1, -1)$、$(0, -0.5)$、$(4, 3)$、$(4, 5)$、$(6, 3)$、$(6, 5)$、$(5, 4.5)$。对于这组坐标,圆舞中间的最小孩子数量为 2。实现这一点的一种方法如上图所示的配置。

请注意,通常情况下,圆舞不一定像上面的例子那样是正方形。它们可以是满足题目要求的任何形状(也就是说,它们可以是任何凸多边形)。此外,圆舞的中间也可能没有孩子。

输入格式

输入的第一行包含一个偶数 $N$ ($6 \le N \le 400$),表示孩子的数量。

接下来是 $N$ 行,每行包含两个空格分隔的实数 $x_i, y_i$ ($0 \le |x_i|, |y_i| \le 10^5$),其中 $(x_i, y_i)$ 表示第 $i$ 个孩子的坐标。

保证没有两个孩子具有相同的坐标,且没有任何一条穿过两个孩子的直线与另一个孩子的距离在 $10^{-6}$ 以内。还保证两个圆舞不重叠,且任何一个圆舞都不完全在另一个圆舞的内部。

输出格式

输出一行,包含一个整数 $m$,表示在所有可能的手拉手配置中,两个圆舞中间的最小孩子数量。

样例

输入样例 1

10
1 1
-1 -1
-1 1
1 -1
0 -0.5
4 3
4 5
6 3
6 5
5 4.5

输出样例 1

2

输入样例 2

6
0 0
0 2
2 0
-1 2
-1 -2
4 4

输出样例 2

0

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.