你在一个二维空间里的(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
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll xs,ys,xe,ye,ans;
ll X1[3],X2[3],Y1[3],Y2[3];
int used[3];
ll dis(ll x1,ll y1,ll x2,ll y2)
{
return abs(x1-x2)+abs(y1-y2);
}
void dfs(int k,ll xl,ll yl,ll sum)
{
if(k==3)
{
ans=min(