#P14677. [ICPC 2025 Seoul R] Quadrants

[ICPC 2025 Seoul R] Quadrants

Description

本题是关于 象限 的。什么是象限?让我们从平面 R2\mathbb{R}^2 上任意两条互相垂直的直线 \ell\ell' 开始。如果你从整个平面 R2\mathbb{R}^2 中移除这两条直线 \ell\ell',你将得到四个连通的、无界的区域。这四个区域中的每一个都称为一个 象限。请注意,象限的边界不属于它自身。

现在,考虑平面 R2\mathbb{R}^2 上的一个点集 PP。我们关心由点集 PP 定义的象限。具体地说,令 Q\mathcal{Q} 为所有满足以下条件的象限 QQ 的集合:QQ 的边界恰好包含 PP 中的三个点。如果一个象限 QQQ \in \mathcal{Q} 的内部恰好包含 PP 中的 kk 个点,则称 QQ 为一个 kk-象限。下图展示了一个例子,其中点集 PP 由 14 个点(小圆圈)组成,你可以看到一个 5-象限 QQQ \in \mathcal{Q}(用青色阴影表示),其边界包含三个点 p,q,rPp, q, r \in P

:::align{center} :::

给定一个包含 nn 个点的点集 PP 作为输入,请编写一个程序,计算对于每个 0kn30 \le k \le n-3kk-象限的数量。

Input Format

你的程序需要从标准输入读取数据。输入的第一行包含一个整数 nn (3n2,0003 \le n \le 2,000),其中 nn 是输入点集 PP 中的点数。接下来的 nn 行中,每行给定两个整数 xxyy,均在 106-10^610610^6 之间(含),表示 PP 中一个输入点 (x,y)(x,y)xx 坐标和 yy 坐标。你可以假设没有两个输入点具有相同的坐标,PP 中没有三点共线,并且平面 R2\mathbb{R}^2 中不存在两条互相垂直的直线 \ell\ell' 使得 P2|\ell \cap P| \ge 2P2|\ell' \cap P| \ge 2

Output Format

你的程序需要向标准输出写入数据。输出恰好 n2n-2 行。对于每个 1in21 \le i \le n-2,你输出的第 ii 行必须包含一个整数,表示关于 nn 个点的输入点集 PP(i1)(i-1)-象限的数量。

3
0 0
1 2
-1 4
2
4
0 0
1 2
-1 4
-1 1
0
4
10
47 20
4 30
3 21
44 12
46 34
18 18
19 50
48 23
22 3
19 22
2
12
20
18
20
30
28
1