#P2612. Mine Sweeper

    ID: 1613 传统题 1000ms 256MiB 尝试: 16 已通过: 1 难度: 10 上传者: 标签>贪心图结构图的遍历Waterloo local 1999.10.02

Mine Sweeper

题目描述

扫雷游戏在一个n×nn \times n的网格上进行。该网格中隐藏着mm个地雷,每个地雷位于不同的网格位置。玩家需要反复点击网格位置。如果点击到有地雷的位置,地雷会爆炸,玩家失败。如果点击到没有地雷的位置,将显示一个0088之间的数字,表示该位置相邻或对角相邻的网格位置中包含的地雷数量。下方展示了一个部分完成的游戏过程中的操作序列。

其中,n=8n=8m=10m=10,空白方格代表数字00,凸起的方格代表未点击的位置,星号(*)形状的图案代表地雷。最左侧的图像表示部分完成的游戏状态。从第一张图到第二张图,玩家进行了两步操作,每次都选择了安全的网格位置。从第二张图到第三张图,玩家运气不佳;他选择了一个有地雷的位置因而失败。如果玩家持续进行安全操作直到只剩下mm个未点击的位置(这些位置必然包含所有地雷),则玩家获胜。

你的任务是读取一个部分完成的游戏信息,并打印对应的游戏板。

输入格式

第一行输入包含一个正整数n10n \leq 10。接下来的nn行表示地雷的位置分布。每行用nn个字符表示一行的内容:点号(.)表示无雷位置,星号(*)表示有雷位置。随后的nn行每行包含nn个字符:已点击位置用xx表示,未点击位置用点号(.)表示。样例输入对应上文的中间图像。

输出格式

你的输出应表示完整的游戏板,每个位置都应正确填充。已被点击且不含地雷的位置应显示0088之间的数字。如果点击到了地雷,则所有有雷位置都应显示星号(*)。其他位置应显示点号(.)。

输入样例1

8
...**..*
......*.
....*...
........
........
.....*..
...**.*.
.....*..
xxx.....
xxxx....
xxxx....
xxxxx...
xxxxx...
xxxxx...
xxx.....
xxxxx...

输出样例1

001.....
0013....
0001....
00011...
00001...
00123...
001.....
00123...

来源
Waterloo local 1999.10.02