#JDT9D. 同步机器人
同步机器人
题目描述
编程夏令营迎来了万众瞩目的最终挑战——机器人团队协作大赛!
小明的任务是为两台高度智能的机器人“阿尔法”和“贝塔”编写同步行动的程序。它们需要在一个的大型仓库中协同作业。
地图上有以下几种区域:
.:表示机器人可以行走的平坦通路。
#:表示机器人无法进入的障碍物。
A,B:分别表示阿尔法和贝塔的起始位置。
a,b:分别表示阿尔法和贝塔的目标位置。
小明只有一个中央控制器,每次只能发送一个指令,指令会同时传达给两台机器人。指令共有四种:N (上), S (下), W (西/左), E (东/右)。
当收到一个指令后,两台机器人会同时尝试向指定方向移动一格。如果某个机器人的目标方向是通路,它就会成功移动过去;但如果它的目标方向是障碍物或地图边界,它就会在原地保持不动。整个过程(发送指令 + 机器人尝试移动)花费 秒。
小明的目标是,找到一个最短的指令序列,使得阿尔法机器人和贝塔机器人能够在同一时刻,分别到达它们各自的目标点。
输入格式
第一行包含两个正整数 和 ,表示仓库地图的行数和列数。
接下来 行,每行一个长度为 的字符串,描述整个地图。
其中 A,B,a,b 分别最多存在一个。
输出格式
输出一个整数,代表让两台机器人同时到达目标所需的最少秒数(即最短指令序列的长度)。
如果不可能让它们同时到达各自的目标点,则输出 IMPOSSIBLE。
3 3
A#B
...
a#b
2
数据范围
子任务 1 (20 分): 。
子任务 2 (30 分): 。
子任务 3 (50 分): 。
相关
在下列比赛中: