3727 - 凌波微步
描述

你在一个二维空间里的 (xMe, yMe) 位置,你的家在 (xHome, yHome) 位置。每一秒钟你可以选择从你当前位置向上、下、左、右四个方向之一移动一个单位。
你现在归心似箭,觉得这么走很慢,所幸你有技能"凌波微步"。在这片二维空间中,有 3 对传送门,每一对传送门以 (xs, ys, xt, yt) 的形式给出,表示你到达 (xs, ys) 点就可以发动"凌波微步"技能,花费 10 秒钟到达 (xt, yt) 点;相反你也可以花费 10 秒钟从 (xt, yt) 点发动"凌波微步"技能到达 (xs, ys) 点。
"凌波微步"技能可以无限多次发动,但只能在所给出的 3 对传送门之间使用。请问你回家最短用时多少秒。

输入

输入第一行 4 个整数,依次是 xMe、yMe、xHome、yHome,表示当前位置和你家的位置。
接下来三行,每行描述一对传送门 (xs, ys, xt, yt),含义见题面。
(0 <= xi, yi <= 10^9)

输出

输出仅一行,包含一个整数表示回家的最少用时。

样例

输入

0 0 20 20
1 1 18 20
1000 1003 1000 1004
1000 1005 1000 1006

输出

14
提示

一共只需考虑 8 个关键点:Me、Home,以及 3 对传送门的起点与终点。任意两点之间都可以步行,边权为两点间的曼哈顿距离 |Xv-Xu| + |Yv-Yu|;此外每对传送门的两个端点之间还有一条权值为 10 的(双向)传送边。在这 8 个点的图上以 Me 为源点跑最短路(如 Dijkstra 或 Floyd),Home 的距离即为答案。样例中 (0,0)->(1,1) 走 2 秒,传送 10 秒到 (18,20),再走 2 秒到 (20,20),共 14 秒。

来源
51nod 2678
标签
题目参数
Time Limit 1 second
Memory Limit 128 MB
提交次数 1
通过次数 1