电子信息课程上,老师带着同学们做了一款智能机器人,并为机器人注入了蓝牙控制程序。
蓝牙的另一端,链接到了计算机上,可以通过计算机的 4 个按钮:w
、s
、a
、d
,分别控制机器人上、下、左、右移动一个格子。
现将机器人放到一个 n \times m 大小的网格中,并在网格中设置了一些障碍。机器人安有红外设备,可以轻松的识别障碍和边界。你给机器人下指令后,机器人识别出如果执行该指令会出网格边界,或者会碰到障碍,机器人会忽略该指令。
在网格中,有一个目标点 P,现给定要给机器人执行的指令字符串,请编程计算:
机器人会走过多少个不同的格子(含起点的第1个格子);
机器人是否会经过设置好的目标点 P?
第一行两个数 n ,m ,分别表示网格的行数和列数。
接下来 n 行,每行 m 个字符,其中字符a
表示机器人的出发位置,字符.
表示该点无障碍,字符*
表示该点是障碍,字符b
表示目标点 P。
最后一行,输入一行仅包含w
、s
、a
、d
四种字符的字符串,字符串长度不超过 5000。
第 1 行输出 1 个整数,表示机器人经过的格子的总数。
第 2 输出 YES
或者 NO
,如果机器人经过了目标点,请输出 YES
,如果机器人无法经过目标点,请输出 NO
。
8 8 .a...... .****... ......*. .......* .......* ....b.*. ........ ........ asssssdddd
11 YES
【数据范围】
20\% 的数据,n≤10,m≤10。
60\% 的数据,n≤100,m≤100。
100\% 的数据,n≤2000,m≤2000。
用于表示指令的字符串长度 ≤ 5000。