拯救美少女
题号:NC230361
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

美少女之神被邪恶的马也怪偷袭并被囚禁在了地牢中!你身为美少女教第一勇士,救出美少女之神义不容辞!

美少女教教主已为你绘制好了地牢的地图,地图由nm字符组成。'.'表示地面,'#'表示墙壁,'A'表示马也怪(有且仅有一个),'S'表示地牢入口,'T'表示美少女之神所在位置。

小心!马也怪每隔单位时间会在自身位置释放一个魔球(消耗1单位时间),魔球每单位时间会朝远离(即魔球至马也怪的曼哈顿距离增加)马也怪的方向扩散(扩散后原魔球消失,具体形式见提示2),被魔球击中的生物将变成邪恶触手怪。你和魔球都无法通过墙壁。

现在距离美少女之神被抓已经过了个单位时间(即保证马也怪第一次释放的魔球在无墙壁阻拦的情况下已全部扩散出边界),你可以在之后的任意时刻进入地牢(不耗时),请判断是否有可能在不碰到魔球与马也怪的情况下救出美少女之神。

保证美少女之神所在坐标魔球无法到达,所有移动均为上下左右,你和魔球同时移动且移速为每单位时间一格,到达T位置视为成功拯救

输入描述:

第一行输入正整数
第二行输入正整数
之后n行输入地牢地图。

输出描述:

若能救出美少女之神,输出"YES" ,否则输出"NO"。
示例1

输入

复制
5 5
3
.T#..
.#...
....A
..S..
.....

输出

复制
YES
示例2

输入

复制
5 5
1
.T#..
.#...
....A
..S..
.....

输出

复制
NO

备注:

【提示1】
在平面上,坐标(x1,y1)i点与坐标(x2,y2)j点的曼哈顿距离为:.

【提示2】
某一时刻地牢状态('+'表示魔球)
...+.+....
..+...+...
.+....#...
+...+..#+.
...+A+...+
+...+...+.
.+.....+..
..+...+...
...+.+....
....+.....
下一时刻地牢状态
..+...+...
.+.....+..
+...+.#.+.
...+.+.#.+
..+.A.+...
...+.+...+
+...+...+.
.+.....+..
..+...+...
...+.+....

【提示3】
你可以将下图中扩散出来的一圈圈魔球视作水面上一圈圈的波纹,这意味着在同一圈上相邻的魔球是始终紧密相连的(即使在扩散中),因此你无法进行下图所示的移动。('+'表示魔球,'@'表示你所在的位置)
+T#.+
.#.+.
+.+.A
@+.+.
+.+.+
下一时刻
.T#+.
+#+.+
@+.+A
+.+.+
.+.+.