问题 4671 --3.边界

4671: 3.边界

题目描述

  Lazylazz手上有一个n*m的棋盘,并放上了一些棋子。这些棋子组成了一个棋阵,例如下图表示一个4x5的棋盘上的棋阵,星号(*)表示棋子,句号(.)表示空位:
*.*..
..**.
.**.*
..**.
Lazyazz定义一个棋子处于棋阵的边界,条件为:它处于棋盘边缘,或存在它的相邻空位处于棋盘边缘,或存在它的相邻空位与棋盘边缘的空位四连通。(白话: 没有被其他棋子包围的棋子)
例如上面给出的棋阵,将边界棋子更换为(#)后,如下所示:
#.#..
..##.
.#*.#
..##.
只有一个棋子不在边界上。
若整个5 x 5的棋盘全部放满棋子,则如下所示:
#####
#***#
#***#
#***#
#####

现在Lazyjazz给你一个棋阵, 他希望你能用(#)标记出处于边界的棋子。

输入

第一行包含由空格隔开的两个正整数n, m。
接下来n行,每行包含一个由m个字符组成的字符事,字符只可能为"." (空位) 或"*"(棋子)。 表示棋阵的样子。

输出

将边界棋子标记为"#"后输出棋阵。

样例输入输出

输入#1 复制
4 5
*.*..
..**.
.**.*
..**.
输出#1 复制
#.#..
..##.
.#*.#
..##.

提示

【限制与约定】
对于40%的测试数据 n≤2
对于80%的测试数据: n≤100, m≤100
对于100%的测试数据: n≤1000,m ≤ 1000

序号 标题 作者 发表时间 费用 订购数 操作