#CLPR1041. NN同学的房间起爆器

NN同学的房间起爆器

题目背景

NN同学的房间起爆器进水啦!

这可是十分重要的东西,所以NN同学狠狠的摇晃它,希望可以把水摇出来,但是她不知道的是,起爆器里面有很多精密元件,要是水碰到了精密元件,机器就会失效。

现在请你判断,在经过了NN同学的一顿操作后,机器是否会幸免。

题目描述

将房间起爆器的内部抽象的看为一个n*m大小的二维平面矩阵

使用 O 表示水滴在机器里面的位置,数量有多个

使用 * 表示机器中可以自由移动的地方

使用 X 表示机器中的精密元件

用数字 1 2 3 4 分别表示NN同学 上 下 左 右 的晃动方向,每一次晃动,就会使所有水滴向对应方向前进一格

若水滴流出边界,则不会再流回来

在一系列操作之后,如果精密元件碰到了水滴,则输出"NO"(碰到,指水滴位置与精密元件位置重合) 如果无事发生,则输出"YES"

输入数据

第一行输入两个整数 n,mn, m 表示矩阵的大小 2n,m1032\leq n,m\leq10^3

接下来 mm 行,每行输入长度为 nn,由 O X * 组合而成的字符串,表示矩阵的具体构造。

最后一行输入由 1 2 3 4 组成的一行字符串,表示每次的晃动方向, 2字符串长度1032\leq 字符串长度\leq10^3

输出数据

一行输出,无事发生输出"YES",水碰到精密元件输出"NO"。

样例

5 10
**********
X****X****
O***O*****
***X*****X
**XXX*****
441133342
YES
5 5
X*X**
O****
***XX
*****
****O
41424
NO