追杀II
题目背景
Smart 与 Tommy 正在玩 \(\texttt{Minecraft Hunter Game}\)。在追杀时,Smart 不小心掉进了一个像迷宫一样的洞穴,他必须尽快出来。
题目描述
Smart 手上有一个洞穴的地图,上面已经标出起点与终点,其中字符 \(\texttt{'S'}\) 表示起点,字符 \(\texttt{'T'}\) 表示终点,字符 \(\texttt{'\#'}\) 表示墙壁,字符 \(\texttt{'.'}\) 表示平地。Smart 需要从 \(\texttt{'S'}\) 出发走到 \(\texttt{'T'}\),每次只能向上下左右相邻的位置移动,不能走出地图,也不能穿过墙壁,每个点只能通过一次。
但是 Smart 需要你将正确路线在地图中标出来 ( 具体看样例 ) .
格式
输入格式
第一行两个整数 \(n,m\),表示地图的长和宽 .
接下来 \(n\) 行 , 表示 Smart 掉进的洞穴的地图.
输出格式
第一行一个字符串 , 表示 Smart 是否能从迷宫中出来,能则输出 \(\texttt{Yes}\) ,不能则输出 \(\texttt{No}\)
如果能,输出用 \(\texttt{'m'}\) 标出路线后的矩阵 .
样例1
样例输入1
3 4
S##T
....
###.
样例输出1
Yes
S##T
###.
限制
对于 \(100\%\) 的数据 \(2<n,m ≤ 40\)
\(\texttt{S,T}\) 本身不用替换 .
数据保证 有且仅有 一条路线可到终点.