1588: 扫雷

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:50 解决:20

题目描述

  扫雷又是一个windows自带的经典游戏。扫雷游戏在一个有n x n个格子的“棋盘”上进行。在这些格子里,有m个地雷,每个地雷都在不同的格子里。玩家需要尝试着挖开其中的一些格子。如果被挖开的格子里有地雷,那么地雷将会被引爆,游戏失败。如果这个格子没有地雷,那么这个格子的地方会显示出一个0到8之间的数字表示这个格子相邻的格子里(上下左右以及对角相邻的,最多8个)一共有多少个地雷。下面的三幅图描述了一些局面。


  在图中,n=9,m=10,空方块表示相邻的格子里没有地雷,凸起的格子表示还没有探测过的区域。玩家在左图状态时尝试着挖开了靠近左下的方格,这是个安全的格子。然后玩家又挖开了中间的一个格子,这次,他挖到了地雷,游戏失败。一旦棋盘上所有没有地雷的格子都被挖开,玩家就会取得胜利。
  你的任务是根据玩家挖开的格子和棋盘上原来有雷的位置,推算出当前的局面。

输入

  第一行,一个整数 n (n ≤10) 。下面第 2 到 n+1行,每行有n个字符,表示每个格子是否有雷。地雷用“*”表示,没有地雷的地方用“.”表示。第 n+2 到 2n+1行,每行有n个字符,表示每个格子是否被挖开。被挖开的用“x”表示,其它地方用“.”表示。上面的中图的描述见Sample Input。

输出

  一共 n 行,每行n个字符,描述当前的局面。被挖开且没有地雷的格子用0到8之间的整数表示,如果有地雷被挖开,所有有地雷的地方都显示为星号。

样例输入 复制

9
.........
**.*.....
....*....
....*....
.....*...
.........
.........
.*.......
.**.*....
....xxxxx
....xxxxx
xxxx.xxxx
xxxx.xxxx
xxxxx.xxx
xxxxxxxxx
xxxxxxxxx
x.xxxxxxx
.....xxxx

样例输出 复制

....10000
....21000
2223.2000
0002.3100
00012.100
000011100
111000000
2.3211000
.....1000