QOJ.ac

QOJ

时间限制: 3.0 s 内存限制: 256 MB 总分: 100

#18571. 公园小径

统计

森林前线(Forest Frontiers)主题公园最近接受了联邦紧急事务管理局(FEMA)的检查。发现的最严重问题是公园内步道的布局。请帮助公园管理部门解决这个问题。

公园地图可以很容易地在坐标系中表示。公园内的每条步道都是一条平行于坐标轴之一的线段。任意两条步道都没有公共点,只有一个例外:线段的端点可以重合。避难点位于公园内的某个位置。保证该点要么不在任何步道上,要么与某条步道的端点重合。

在紧急情况下,警报会被拉响,游客被告知前往避难点。根据 FEMA 的规定,任何游客必须能够仅沿着步道移动到达避难点,并且有一个附加限制:在移动过程中,到避难点的距离必须单调递减。假设公园游客绝不离开步道,因此当警报触发时,每个游客可能位于任意步道的任意位置。

显然,在规划公园布局时,没有人考虑到这条愚蠢的规定。

目前,公园的地面部分已经完工,无法在地面上建造新的步道。然而,可以在地下建造一些隧道步道。在 FEMA 的规定中,地下步道与普通步道同等对待。在计算到避难点的距离时,不考虑海拔高度差。

我们可以安全地假设每条隧道由一组地下步道组成。FEMA 对隧道有额外的规定:

  1. 隧道不能分叉:严格只有两个入口,且两个入口之间是一条线性的路径。
  2. 每个隧道入口必须位于地面步道上或避难点处。

隧道可以建在不同的深度,因此它们在平面公园地图上可以相交。

建造者根据隧道在公园地图上的长度来计算隧道的建设成本。垂直分量(隧道的深度)不予考虑。请提出如何建造隧道以满足 FEMA 的要求,并使所有隧道的总长度最小。

输入格式

输入的第一行包含一个整数 $N$ — 公园内步道的数量($1 \le N \le 100\,000$)。

第二行包含两个数 $x_e$ 和 $y_e$ — 避难点的坐标。

接下来的 $N$ 行中,每行描述一条步道,包含四个数 $x_1, y_1, x_2, y_2$,其中 $x_1, y_1$ 是步道一个端点的坐标,$x_2, y_2$ 是另一个端点的坐标。保证 $x_1 = x_2$ 且 $y_1 \ne y_2$,或者 $y_1 = y_2$ 且 $x_1 \ne x_2$。

所有坐标均为整数。任何坐标的绝对值不超过 $10^8$。

输出格式

输出的第一行必须包含两个整数:$K$ — 需要建造的隧道数量,以及 $A$ — 这些隧道的总长度。

接下来的 $K$ 行中,每行必须包含一条隧道的描述。

每条隧道可以表示为一条折线,其线段平行于坐标轴。隧道的描述必须以折线的顶点数(至少为 $2$)开始,随后按顺序(从一端到另一端)给出折线顶点的 $x$ 和 $y$ 坐标。所有数字必须为整数。折线的任意两个相邻顶点必须有一个坐标相同,另一个坐标不同。

你计划建造的所有隧道中的顶点总数不能超过 $10^6$。保证存在符合输出格式限制的最优方案。如果存在多种可能的解,输出其中任意一种。如果公园本身已经符合 FEMA 的规定,不需要建造任何隧道,则输出必须包含两个数 $0$ 和 $0$(即 $K = A = 0$)。

样例

输入样例 1

12
0 0
1 3 1 5
3 1 5 1
1 3 2 3
2 3 2 2
2 2 3 2
3 1 3 2
5 1 5 3
5 3 4 3
4 3 4 4
4 4 3 4
3 4 3 5
3 5 1 5

输出样例 1

5 16
3 0 0 1 0 1 3
3 2 2 0 2 0 0
4 0 0 1 0 1 1 3 1
3 2 3 3 3 3 4
3 3 2 3 3 4 3

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.