#P14291. [ICPC 2025 WF] Walking on Sunshine

[ICPC 2025 WF] Walking on Sunshine

Description

我在阳光下行走,但这感觉并不好——我的眼睛很疼!

巴库的阳光很充足。如果你背对太阳行走,或者至少垂直于它的光线行走,阳光就不会直射你的眼睛。对于本题,我们假设太阳从正南方照射。向西、向东或任何介于西和东之间且带有向北分量的方向行走,都可以避免直视太阳。如果你朝任何带有向南分量的方向行走,你的眼睛就会感到刺痛。

巴库也有许多矩形的阴影区域,停留在这些区域内可以保护你的眼睛,无论你朝哪个方向行走。例如,图 L.1 展示了两个阴影区域。

请计算你从比赛地点前往颁奖典礼地点时,必须在阳光下(即阳光刺眼的情况下)行走的最短距离。

:::align{center}

图 L.1: 样例输入 1 以及一条最小化阳光刺眼程度的路径。 :::

Input Format

第一行输入包含五个整数 n n xc x_c yc y_c xa x_a ya y_a ,其中 n n (0n105 0 \leq n \leq 10^5 ) 是阴影区域的数量,(xc,yc) (x_c, y_c) 是比赛地点,(xa,ya) (x_a, y_a) 是颁奖典礼地点 (106xc,yc,xa,ya106 -10^6 \leq x_c, y_c, x_a, y_a \leq 10^6 )。太阳从正南方向北照射,即方向为从 (0,0) (0,0) (0,1) (0, 1) 。如果你朝方向 (x,y) (x, y) 行走,其中 y<0 y < 0 x x 为任意值,那么你就会直视太阳。

接下来的 n n 行描述了阴影区域,它们是与坐标轴对齐的矩形。每行包含四个整数 x1 x_1 y1 y_1 x2 x_2 y2 y_2 (106x1<x2106 -10^6 \leq x_1 < x_2 \leq 10^6 106y1<y2106 -10^6 \leq y_1 < y_2 \leq 10^6 )。矩形的西南角是 (x1,y1) (x_1, y_1) ,东北角是 (x2,y2) (x_2, y_2) 。描述阴影区域的矩形之间不会相互接触或相交。

Output Format

输出你必须在阳光下(即阳光刺眼)行走的最短距离。你的答案的绝对误差或相对误差必须不超过 107 10^{-7}

2 1 7 5 1
3 6 5 9
2 3 6 5
3.0
2 0 10 10 0
2 7 3 8
4 3 8 5
7.0
2 11 -1 -1 11
2 7 3 8
4 3 8 5
0.0
3 1 5 9 5
-5 6 2 9
4 7 12 8
1 1 7 3
0.0
3 1 7 9 3
2 6 3 8
4 4 5 6
6 2 7 4
0.0
1 0 0 0 0
-5 -5 5 5
0.0

Hint

样例 1 解释: 图 L.1 展示了一条从比赛地点到颁奖典礼地点的最优路径,包含 5 段直线路程。在第一段,你背对太阳行走。在第二段和第四段,你虽然面向太阳行走,但位于阴影区域内。在第三段和第五段,你在阴影区域外面向太阳行走。这两段的总长度是 3。