#1177. 丛林探险家

丛林探险家

题目描述

在一片 n×m n \times m 的魔法森林中,探险者从坐标 (a,b)(a, b) 出发,前往寻找位于 (c,d)(c, d) 的魔法水晶。他携带了一本指引手册,上面记录了 k k 次移动指令。每次移动只能按指令顺序执行,方向包括:向上(U)、向下(D)、向左(L)、向右(R),每次移动一格。 森林边界为行号 1xn 1 \leq x \leq n 且列号 1ym 1 \leq y \leq m ,坐标的形式表示为先行后列,即(行,列)。请你按照如下规则帮助探险家完成探险任务。

  1. 若探险者在移动过程中走出森林(即行号或列号超出边界),输出 Sorry,并在下一行输出走出森林时当前的坐标。
  2. 若在正常的移动中到达水晶位置,输出 Yes,并在下一行输出首次到达水晶位置时的移动次数。
  3. 若执行完所有移动指令后还是无法到达水晶位置,输出 No并在下一行输出最终到达的坐标。

输入格式

  1. 第一行:两个整数 n n m m 1n,m1000 1 \leq n, m \leq 1000 ),表示森林的行列数。
  2. 第二行:两个整数 a a b b ,表示探险者的起点坐标。
  3. 第三行:两个整数 c c d d ,表示魔法水晶的坐标。
  4. 第四行:一个整数 k k 1k105 1 \leq k \leq 10^5 ),表示移动指令的数量。
  5. 接下来 k k 行:每行一个字符(U/D/L/R),表示每次移动的方向。

输出格式

​ 输出共2行,若探险者在移动过程中走出森林,第一行输出 Sorry,并在下一行输出走出森林时当前的坐标。 若在正常的移动中到达水晶位置,输出 Yes,并在下一行输出首次到达水晶位置时的移动次数。 若执行完所有移动指令后还是无法到达水晶位置,输出 No并在下一行输出最终到达的坐标。

样例

3 3  
2 2  
3 3  
3  
U  
U  
R  
Sorry
0 2  

解释

  • 第1次移动 U:行号从2→1(合法)。
  • 第2次移动 U:行号从1→0(走出森林),立即终止,输出越界坐标 (0, 2)。
5 5  
1 1  
3 3  
5
D  
D  
R  
R  
L
R
Yes 
4  

解释:探险家的移动过程,起点(1,1)(1,1)向下走变为(2,1)(2,1)、向下走变为(3,1)(3,1),向右走变为(3,2)(3,2),向右走变为(33)(3,3).得到水晶。

4 4  
2 2  
4 4  
3  
D  
L  
D  
No 
4 1  

解释:执行完所有指令后仍然未到达水晶位置,最终探险家所在的坐标 是(4, 1)。