#P6948. [ICPC 2018 WF] Single Cut of Failure

[ICPC 2018 WF] Single Cut of Failure

Description

入侵与犯罪预防公司 (the Intrusion and Crime Prevection Company, 简称 ICPC) 为家庭和商业公司建立了入侵检测系统。国际大学生编程竞赛 (the International Collegiate Programming Contest, 碰巧也简称 ICPC) 正在考虑雇佣该公司来确保下一年 World Finals 的题目文件的储藏房间的安全。

比赛工作人员希望防止过去几年发生的入侵尝试,例如在大楼的外部垂直速降然后从窗户进入,从排气管道爬进来,冒充 Bill Poucher (译者注:某知名计算机科学教授,ACM-ICPC 的执行董事),以及创造性地使用攻击潜艇。正因如此,题目文件将被储藏在仅有一扇门而没有任何其他出入口的房间里。

ICPC (指公司)建议在门的四边安装传感器,每对传感器由电线连接。如果有人打开了门,任何连接的一对传感器将检测到这个动作并引起警报声。

然而这个系统存在一个设计缺陷。入侵者可以在开门之前剪断这些电线。为了评估这个系统的安全性,你需要使用最少的线段剪断所有电线。下图展示了两种具有不同电线分布的门(对应于两个样例)以及最少的与所有电线相交的线段。

图

Input Format

第一行三个整数 n,w,hn, w, h 分别表示电线的数量 (1n1061 \le n \le 10^6) 以及门的尺寸 (1w,h1081 \le w, h \le 10^8) 。接下来 nn 行,每行描述一个电线的位置。这些行中每行包含四个整数 x1,y1,x2,y2x_1, y_1, x_2, y_2 (0x1,x2w,0y1,y2h0 \le x_1, x_2 \le w, 0 \le y_1, y_2 \le h) 表示该电线从 (x1,y1)(x_1, y_1) 连接到 (x2,y2)(x_2, y_2) 。每根电线连接门的不同的两边。没有电线连接到门的四个角落。输入的所有位置都是两两不同的。

Output Format

输出最少的一组线段与所有电线有交。首先第一行输出线段的数量。然后逐行输出线段,每行以 x1x_1 y1y_1 x2x_2 y2y_2 的格式给出一个从 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2) 的线段。每条线段的两个端点必须在门的不同的两边。线段的端点与任何电线端点及门的四个角落的距离不能小于 10610^{-6}

线段可以以任意顺序输出。线段的两个端点也可以以任意顺序输出。如果有多种可行的解,输出任意一组解即可。

译者注:线段的端点坐标可以是满足限制的任意实数

4 4 6
0 1 4 4
0 5 2 0
0 3 3 6
2 6 4 2

1
0 4 4 3

5 4 6
0 2 2 0
0 3 2 6
1 6 3 0
1 0 4 4
3 6 4 2

2
0 4 4 4.5
0 1 4 1