QOJ.ac

QOJ

実行時間制限: 5 s メモリ制限: 256 MB 満点: 100 ハック可能 ✓

#12865. 若尔当

統計

Jordan 测度是一种在 $\mathbb{R}^n$ 空间中测量集合的方法。在本题中,我们仅考虑二维空间(笛卡尔平面)。集合 $S$ 的测度是一个非负实数,记作 $\mu(S)$。在大多数情况下,图形的测度就是它的面积。

如果 $S$ 是一个边平行于坐标轴且边长分别为 $a$ 和 $b$ 的矩形,则 $\mu(S) = a \cdot b$,此时 $S$ 被称为简单矩形。如果 $S$ 是有限个简单矩形的不交并($S = R_1 \sqcup \dots \sqcup R_n$),则 $\mu(S) = \mu(R_1) + \dots + \mu(R_n)$,此时 $S$ 被称为简单集。虽然 Jordan 测度也可以测量非简单集,但本题中不需要。

你拥有一个具有 $n$ 个顶点且边平行于坐标轴的多边形,并希望根据定义计算其测度。已知该图形是一个简单集,因此你需要将其分割为若干个互不相交的简单矩形。由于你非常懒,不想进行多次计算,所以你需要将该图形分割为数量尽可能少的矩形。

输入格式

输入的第一行包含一个整数 $n$:多边形的顶点数($4 \le n \le 500$,$n$ 为偶数)。接下来的 $n$ 行,每行包含两个空格分隔的整数:多边形顶点的坐标,按逆时针顺序给出。坐标的绝对值不超过 $10^4$。保证该多边形是一个简单集,具有非零面积,且没有自接触或自相交。

输出格式

输出的第一行必须包含 $k$,即矩形的最小可能数量。接下来的 $k$ 行,每行必须包含四个整数:矩形两个对顶点的坐标。输出中的任意两个矩形不得相交。所有矩形的并集必须恰好构成输入的多边形。

样例

输入 1

6
0 0
2 0
2 1
1 1
1 2
0 2

输出 1

2
0 0 2 1
0 1 1 2

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.