QOJ.ac

QOJ

Time Limit: 4.0 s Memory Limit: 2048 MB Total points: 100

#17329. 幼儿园重游

Statistics

在幼儿园里,最耗时的活动之一就是用安全剪刀从纸上剪下各种形状。让我们来看一个简化版的任务:你从一张无限大的纸开始,上面画有 $N$ 个互不相交的轴对齐矩形,剪裁方式为无限长的直线。剪裁不得“切坏”任何矩形:它不能穿过任何矩形的内部(允许剪裁线恰好沿着矩形的边或穿过矩形的顶点)。当你剪开一张纸时,纸会分成两块,你可以继续独立地剪裁这两块纸(在一块纸上的后续剪裁不会影响其他纸片)。

你的目标是进行一系列剪裁,使得每个矩形最终都位于其独立的纸片上(因为在那之后,将每个矩形精确地剪下来就很容易了)。

确定以这种方式将矩形分离所需的最小剪裁次数(不一定是轴对齐的)。如果任务无法完成,则输出 impossible

输入格式

第一行包含一个整数 $N$ ($1 \le N \le 100$),表示矩形的数量。

接下来的 $N$ 行,每行描述一个矩形。每行包含四个空格分隔的整数 $x_1, y_1, x_2$ 和 $y_2$ ($|x_1|, |y_1|, |x_2|, |y_2| \le 10^9, x_1 < x_2, y_1 < y_2$),其中 $(x_1, y_1)$ 是矩形的左下角坐标,$(x_2, y_2)$ 是矩形的右上角坐标。

保证矩形互不相交:任意两个矩形在任何点(包括边或顶点)上都没有交集。

输出格式

输出将所有矩形分离所需的最小剪裁次数。(不需要包含将矩形分离后,为了修剪矩形周围多余空白纸张而进行的额外剪裁。)如果任务无法完成,则输出 impossible

说明

样例输入 1 中分离矩形的一种可能剪裁序列的前两次剪裁如下图所示。第一次剪裁用红色标出,第二次用蓝色标出。注意,蓝色剪裁在红色剪裁之前是无效的,因为它会切坏右侧的矩形。

样例

输入 1

6
-1 1 0 4
1 0 3 1
2 2 3 3
4 0 5 3
2 4 5 5
6 3 7 5

输出 1

5

输入 2

4
0 -1 1 2
2 -1 5 0
-10 3 3 4
4 1 5 13

输出 2

impossible

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.