在规划新城区 时,决定让街道形成一个规整的矩形网格,也就是说,所有街道都分为两种:南北向和东西向。每条平行街道间隔一公里,每个街区正好是 公里 公里的方块。这样,整个道路系统就像一个均匀的格子。
每条路都允许双向通行。
但建成后发现,这样的规划并不总是方便。因为建大型工厂或公园时,单个街区不够用。于是市政
府决定给每个大型项目分配一个由若干相邻街区组成的矩形区域。遗憾的是,这些区域内的道路将全部封闭,禁止通行,但区域边界的道路仍可通行。两个区域相邻接触时,边界道路仍然开放,不会封闭。
当市长拿到这些大型项目区域分布图时,他想知道从市政
府大楼到他未来家的路线难不难走。市政
府位于新区中心,坐标是南北向的 号街和东西向的 号街的交叉口。市长还没决定最终住哪儿,他有 个备选位置。每个位置在第 条南北街和第 条东西街的交叉口( 表示东边, 表示西边; 表示北边, 表示南边)。
市长觉得,如果从市政
府到家的路上转弯超过两次(无论左转还是右转),那条路就太复杂了。他的车在每个路口最多只能转一次(不能掉头)。路线长度无所谓,车可以从任何方向驶入家门。车起始时面朝北,可以立刻左转或右转,但不能直接掉头。
请写程序,根据封闭的街区信息和市长家的备选位置,找出每个备选位置是否存在不复杂的路线(转弯次数不超过 次)从市政
府到家。如果有,找出其中最短的路线;如果没有,输出不存在。无需最小化转弯次数。