#P15637. [2019 KAIST RUN Spring] Dijkstra Is Playing At My House

[2019 KAIST RUN Spring] Dijkstra Is Playing At My House

题目描述

为了庆祝你的队伍在 ICPC 世界总决赛中获胜,Edsger W. Dijkstra(Dijkstra 算法的发明者和命名者)将在你位于纽约市的家中举办一场盛大的派对。派对将在 5 小时后开始,所以他最好现在就动身。

纽约市被建模为一个二维平面。Dijkstra 当前位于坐标 (sx,sy)(s_x, s_y),而你的家位于坐标 (ex,ey)(e_x, e_y)。Dijkstra 只能沿着与坐标轴平行的方向移动(你还记得曼哈顿距离,对吧?)。此外,有 NN 座摩天大楼,它们都是与坐标轴平行的矩形,你可以穿过其边界,但不能穿过其严格内部(即矩形内部)的任何地方。

你接到了 Dijkstra 的电话,他说计算从他所在位置到你家的最短路径对他来说太难了。不知为何,他正在失去他的优势。然而,这并非坏消息,因为这是你在伟大的 Dijkstra 面前展现风采的机会。你能做到吗?

保证所有 xx 坐标互不相同,所有 yy 坐标也互不相同。同时保证任意两个矩形不重叠。还保证你的家和 Dijkstra 的起始位置都不在任何矩形内部。

输入格式

第一行包含五个整数 N,sx,sy,ex,eyN, s_x, s_y, e_x, e_y。 ($1 \le N \le 250 000, 0 \le s_x, s_y, e_x, e_y \le 10^8$)

接下来的 NN 行,每行包含四个整数 ai,bi,ci,dia_i, b_i, c_i, d_i。这表示第 ii 座摩天大楼是一个矩形,其四个角位于 (ai,bi),(ai,di),(ci,bi),(ci,di)(a_i, b_i), (a_i, d_i), (c_i, b_i), (c_i, d_i)。 (0ai<ci1080 \le a_i < c_i \le 10^8, 0bi<di1080 \le b_i < d_i \le 10^8)

保证以下条件:

  • 令 $X = \{s_x, e_x, a_1, a_2, \cdots, a_N, c_1, c_2, \cdots, c_N\}$, $Y = \{s_y, e_y, b_1, b_2, \cdots, b_N, d_1, d_2, \cdots, d_N\}$。XX 中的所有元素互不相同,YY 中的所有元素也互不相同。
  • 任意两个矩形没有公共点。
  • Dijkstra 的位置和你家的位置都不在任何矩形内部。

输出格式

输出 Dijkstra 的位置到你的家之间,使用曼哈顿度量的最短路径长度。

3 2 14 5 1
4 6 6 10
0 7 3 9
1 2 8 5
20
1 0 500 100 503
1 0 99 1000
1097
2 2 8 10 3
3 6 6 10
7 1 8 7
15

提示

翻译由 DeepSeek 完成