众所周知,出题人没玩过《双人成行》,于是给出了如下经典二人协作版迷宫问题。孤岛被划分为 个方格,按行从上到下、列从左到右编号为 至 。地图上的地形分为三种: 平地(`.`)——可以自由经过; 陷阱(`#`)——踩上去立即死亡; 传送门(`@`)——一旦进入便会立刻离开孤岛。 你与来自平行时空的另一个"你"最初同时位于坐标 的同一块平地。两人每次必须同时行动,且朝相反方向各移动一步,即: 如果你选择向上,则另一个你必须向下; 如果你选择向左,则另一个你必须向右,依此类推。 在任何时刻,若有人走出边界或踏入陷阱,游戏立即失败;若有人到达传送门,则他会立刻离开并不再返回,之后剩下的那个人可以单独自由移动(不再受"相反方向"限制)。 请判断是否存在一条合法的移动序列,使得两个人都能成功离开孤岛;若存在,请输出最短所需步数,否则输出 。
输入描述:
输入包含 行:第一行输入四个整数 ;接下来 行,第 行输入一个长度为 的字符串 ,仅由 `.`、`#`、`@` 组成,描述第 行的地形。保证起点 处为平地。
输出描述:
若存在可行方案,输出最短移动步数;否则输出 。
示例1
说明
你可以先往上后往左到达(1,1)传送门
另外一个时空的你会先下后右到达(3,3)传送门
加载中...