#Q1034. 强制位移地块

强制位移地块

题目背景

阿布是一个勇敢的冒险者,他正挑战一款最新的沙盒冒险游戏。在游戏中,有一种非常奇特的地块,站上去后会触发强制位移的效果。地块会按照以下规则让阿布移动:

  • w —— 强制向上位移一格(阿布感觉像被弹簧弹起)。
  • a —— 强制向左位移一格(阿布像被旋风刮向左边)。
  • s —— 强制向下位移一格(阿布像被推了一把)。
  • d —— 强制向右位移一格(阿布仿佛被重力吸引)。
  • p —— 停止不动(阿布可以在这停下,好好休息一下)。

地图的四周被围墙包围,这些围墙也是很好的障碍物来使得阿布停下。若阿布移动撞到了围墙,当前地块的强制位移效果将失效,阿布停在围墙前的安全位置。

你的任务是根据初始位置和地图地块的规则,模拟阿布的移动过程,并输出他最终停留的位置。

输入要求

  • 第一行输入两个正整数mmnn(1m1001n100)(1≤m≤100,1≤n≤100),表示地图的行数和列数。
  • 接下来输入一个 m×nm×n的字符矩阵,矩阵中的每个元素均为wasdp之一,代表地图。
  • 最后一行输入两个正整数xxyy(0x<m0y<n)(0≤x<m,0≤y<n),表示阿布的初始位置。

输出要求

输出两个整数,表示阿布强制位移后的最终停下来的位置的行号和列号(从00开始计数)。 但如果阿布强制位移超过10000次还没停下来,则输出-1

样例

4 5  
wasdp
swpad
aswsa
dpaaw
2 3 
3 1
5 3
was
swp
asw
dpa
wds
1 1
0 0
3 5  
wadsp
swpda
aswds
0 2
-1

样例说明

样例1

阿布初始位置为(23)(2,3),该地块为s,强制向下位移一格;

到达(33)(3,3),该地块为a,强制向左位移一格;

到达(32)(3,2),该地块为a,强制向左位移一格;

到达(31)(3,1),该地块为p,结束位移,阿布最终停留在(31)(3,1)

样例2

阿布初始位置为(11)(1,1),该地块为w,强制向上位移一格;

到达(01)(0,1),该地块为a,强制向左位移一格;

到达(00)(0,0),该地块为w,强制向上位移一格,但是上方是围墙,位移失败,停留在这一格,所以阿布最终停留在(00)(0,0)

样例3

阿布初始位置为(02)(0,2),该地块为d,强制向右位移一格;

到达(03)(0,3),该地块为s,强制向下位移一格;

到达(13)(1,3),该地块为d,强制向右位移一格;

到达(14)(1,4),该地块为a,强制向左位移一格;

到达(13)(1,3),该地块为d,强制向右位移一格;

到达(14)(1,4),该地块为a,强制向左位移一格;

... ...

从此阿布陷入(13)(1,3)(14)(1,4)再到(13)(1,3)的无尽循环,无法逃脱,输出-1