#P14119. [JAG 2025 Summer Camp #2] Strange House
[JAG 2025 Summer Camp #2] Strange House
题目描述
作为一名奇怪的房屋检查员,你正在检查一栋由 个房间组成的房屋。每个房间都是 平面上的一个矩形,其每条边均平行于 轴或 轴。房间之间可以接触,但不会重叠。
如果两个房间的边界共享一段长度为正的线段,则称这两个房间是相邻的。保证从任意一个房间出发,都可以通过反复移动到相邻房间而到达任何其他房间。此外,如果两个房间的边界仅共享一个点,那么必然存在另一个房间与这两个房间都相邻。
图 D-1 描绘了样例输入 1 的情况。另一方面,图 D-2 和图 D-3 是无效的输入。
:::align{center}
:::
在图 D-1 中,你可能已经发现了被房间包围的奇怪空间。更精确地说,如果一个简单多边形满足以下条件,则称其为奇怪空间:
- 该多边形与任何房间均不重叠。
- 对于该多边形边界上的任意一点,都存在一个房间的边界包含该点。
你的任务是找出房屋中所有的奇怪空间。输出奇怪空间的数量以及它们的面积之和。
输入格式
输入包含一个测试用例,格式如下。
$$\begin{aligned} & n \\ & l_1 \ r_1 \ b_1 \ t_1 \\ & \vdots \\ & l_n \ r_n \ b_n \ t_n \end{aligned}$$第一行包含一个整数 (),表示房屋中的房间数量。接下来的 行,每行包含四个满足 和 的整数。每行表示第 个房间的四个角点分别为 、、 和 。这些房间满足题目描述中说明的所有条件。
输出格式
输出两行。第一行应包含房屋中奇怪空间的数量。第二行应包含这些奇怪空间的面积之和。
输入输出样例 #1
输入 #1
10
10 30 10 90
30 90 10 30
10 30 90 110
30 90 90 110
30 80 40 90
90 120 10 110
120 170 10 50
120 130 60 110
130 170 60 110
130 170 50 60
输出 #1
2
1200
输入输出样例 #2
输入 #2
7
0 3 0 24
3 9 0 24
9 15 0 12
9 15 12 24
15 17 0 8
15 17 8 16
15 17 16 24
输出 #2
0
0