题目描述
影厅是 行 列的格子:. 座位、# 隔墙、E 出口(共 个,按从上到下、从左到右扫描顺序编号 )。散场时每秒走一格(四向,E 与 . 可通行)。对每个可走格输出两个数:到最近出口的最少秒数 ,以及「最近出口」的编号——多个出口同时最近时取编号最小。出口格输出 0 和自己的编号;被墙围死到不了任何出口的可走格输出 -1 和 0。
输入格式
第一行两个整数 , ;接下来 行每行一个长度为 的字符串。
输出格式
前 行:距离矩阵(空格分隔,墙与不可达为 -1);后 行:归属编号矩阵(墙、不可达为 0)。
样例
输入
3 5 ..#E. .###. E...E
输出
2 3 -1 0 1 1 -1 -1 -1 1 0 1 2 1 0 2 2 0 1 1 2 0 0 0 3 2 2 2 3 3
数据范围
- 对于 30% 的数据,, 10 且恰好 1 个出口(退化普通 BFS 可过)。
- 对于 60% 的数据,, 200。
- 对于 100% 的数据,1 , 500,至少 1 个出口。