4178: 救救K同学

Memory Limit:128 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:83 Solved:23

Description

K同学在走动的时候发现在自己的地下发现了一个迷宫,当他进入到迷宫以后发现,入口发现已经封住了。 不过在他自己的脚下发现了一个提示: 这是一个无限的迷宫,你只要走到足够远的地方,你就能顺利的掏出迷宫里。 在迷宫当中k同学可以像上下左右四个方向移动。 然而其中"."代表可以通的路;"#"代表墙,不可以通行;"S"代表k同学的起点。 走出当前地图的时候,他会发现他的前面还会出来一个新的迷宫,这个迷宫跟上一个迷宫一样。

Input

第一行有两个数字n和m,表示迷宫有n行m列(n<=1500, m<=1500) 接下来的n行,每行都有m个字符:"#"表示墙,"S"表示k同学起点,"."表示可以通网的路。

Output

输出只有一行,如果K同学可以逃出迷宫请你输出"Yes".否则请输出"No";

Sample Input Copy

样例1:
5 4
##.#
##S#
#..#
#.##
#..#

样例2
5 4
##.#
##S#
#..#
..#.
#.##

Sample Output Copy

样例1:
Yes
样例2:
No

HINT

数据范围:1, 10, 20, 40, 60, 100, 500, 1000, 1200, 1500, 1500 样例1解释: 从s开始k同学一直往上或者往下走,他就可以一直能够往下走,走到边界就可以在新的复制过的地图里面接着往前走,因为往下走的,所以在新的地图里面从上在往下走, 那么他就可以一直往下走,走的越来越远,他就可以成功的逃出迷宫了。 样例2解释: 从s往下走的时候到(5,2)的时候,接着往下走不了了,因为(1,2)是个墙。如果从(4,1)往左边走的时候,虽然可以走,但是新的地图当中你只能移动一个地方。 从s往上走的时候到(1,3)。接着往上走,走到新的地图的时候他遇到了(5,3)的墙。依然走不动。所以没有别的地方走了。所以走不出迷宫。

加入题单

算法标签: