68. 像素放置
内存限制:256 MB
时间限制:1.000 S
题目描述
小蓝最近迷上了一款名为《像素放置》的游戏,游戏在一个 n × m 的网格棋盘上进行,棋盘含有 n 行,每行包含 m 个方格。
玩家的任务就是需要对这 n × m 个方格进行像素填充,填充颜色只有黑色或白色两种。有些方格中会出现一个整数数字有些方格中会出现一个整数数字 x(0 <= x <= 9),这表示当前方格加上周围八个方向上相邻的方格(分别是上方、下方、左方、右方、左上方、右上方、左下方、右下方)共九个方格内有且仅有 x 个方格需要用黑色填充。
玩家需要在满足所有数字约束下对网格进行像素填充,请你帮助小蓝来完成。题目保证所有数据都有解并且解是唯一的。
输入
输入的第一行包含两个整数 n,m,用一个空格分隔,表示棋盘大小。
接下来 n 行,每行包含 m 个字符,表示棋盘布局。字符可能是数字 0∼9,这表示网格上的数字;字符还有可能是下划线( ASCII 码为 95),表示一个不带有数字的普通网格。
输出
输出 n 行,每行包含 m 个字符,表示答案。如果网格填充白色则用字符 0 表示,如果网格填充黑色则用字符 1 表示。
样例输入 复制
6 8
_1__5_1_
1_4__42_
3__6__5_
___56___
_688___4
_____6__
样例输出 复制
00011000
00111100
01000010
11111111
01011110
01111110
提示
上图左是样例数据对应的棋盘布局,上图右是此局游戏的解。例如第 3 行第 1 列处的方格中有一个数字 3,它周围有且仅有 3 个格子被黑色填充,分别是第 3 行第 2 列、第 4 行第 1 列 和第 4 行第 2 列列的方格。
数据范围:
4 <= n, m <= 100。