题目:
NIO 和 Desprado2 是好朋友,他们住在同一个城市。 不过,每次蔚来开车去desprado2,等红灯的时间都比较长,蔚来对此非常苦恼。 他们所在的城市有 n个十字路口。 蔚来是个很倒霉的家伙,每次直行、左转或在十字路口掉头,都会遇到红灯,必须等待。 十字路口右转不用等红灯。
NIO 讨厌红灯,所以他想知道他会遇到的最少红灯数量。 你能帮助他吗?
输入描述
第一行包含一个整数n 2<=n<500000,表示城市中的十字路口数量。然后跟随 n 行,每行包含四个不同的整数,
c
i
,
1
,
c
i
,
2
,
c
i
,
3
,
c
i
,
4
0
<
=
c
i
,
j
<
n
c_{i,1},c_{i,2},c_{i,3},c_{i,4} {0<=c_{i,j}<n}
ci,1,ci,2,ci,3,ci,40<=ci,j<n表示通往第 i 个十字路口的四条道路的起点,如果
c
i
,
j
=
0
c_{i,j}=0
ci,j=0那么这条路来自其他城市,蔚来永远不会走这条路。她的道路是逆时针顺序的,也就是说,如果 NIO 在道路
<
c
i
,
j
,
i
>
想去路
<c_{i,j}, i> 想去路
<ci,j,i>想去路
<
i
,
c
i
,
j
%
4
+
1
>
<i, c_{i,j\%4+1}>%4+1>
<i,ci,j%4+1>,他不需要等红灯,因为他在十字路口右转,否则他将不得不等待红灯。保证地图不会包含多个边和自环。也保证了所有的道路都是双向的.
最后一行包含四个整数
s
1
,
s
2
,
t
1
,
t
2
(
1
<
=
n
)
s_{1},s_{2},t_{1},t_{2}(1<=n)
s1,s2,t1,t2(1<=n)
N
I
O
在路上
<
s
1
,
s
2
>
他想去路
<
t
1
,
t
2
>
并访问
D
e
s
p
r
a
d
o
2
。保证两条道路都在上面给出的地图中。
NIO 在路上 <s_1,s_2> 他想去路 <t_1,t_2> 并访问 Desprado2。保证两条道路都在上面给出的地图中。
NIO在路上<s1,s2>他想去路<t1,t2>并访问Desprado2。保证两条道路都在上面给出的地图中。
请注意道路 <a,b> 不等同于道路 <b,a>。如果 NIO 在路 <a,b> 并且他想去路 <b,a>,他应该在十字路口掉头等待红灯。
输出描述
输出一个整数,NIO 遇到的最小红灯数。
如果无法访问 Desprado2,则打印 -1。
输入
4
3 4 0 0
0 0 4 3
2 1 0 0
2 0 0 1
4 2 4 1
输出
1
最佳路线之一是:在 2 号路口右转,在 3 号路口右转,在 1 号路口右转,在 4 号路口右转。 图片如下: