2022牛客多校 (3)J.Journey

题目:

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 号路口右转。 图片如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值