#6819. 扫雷-T4

扫雷-T4

题目描述

在扫雷游戏中,棋盘有 nnmm 列,一共有 kk 个炸弹。每个格子最多包含一个炸弹。

马尔科已经知道所有炸弹的位置。现在,他需要把每一个不含炸弹的格子填上一个数字,这个数字表示该格子周围八个相邻格子中炸弹的数量。

如果一个格子中有炸弹,则用字符 B 表示。

请你输出按照马尔科规则生成的扫雷棋盘。

输入格式

第一行三个整数 n,m,kn, m, k,分别表示棋盘的行数、列数和炸弹数量。

接下来 kk 行,每行两个整数 ri,sir_i, s_i,表示一个炸弹所在的位置为第 rir_i 行第 sis_i 列。

保证每个格子至多包含一个炸弹。

输出格式

输出 nn 行,每行 mm 个字符,表示生成后的扫雷棋盘。

  • 如果某个格子中有炸弹,则输出 B
  • 否则,输出该格子周围八个相邻格子中炸弹的数量。

每行的 mm 个字符之间不需要空格。

样例

1 6 1
1 3
01B100
3 3 3
1 1
2 3
1 3
B3B
13B
011

样例解释

样例 1:棋盘只有一行,共 66 列。炸弹位于第 11 行第 33 列。因此第 33 列输出 B。第 22 列和第 44 列与炸弹相邻,所以输出 11,其他格子周围没有炸弹,所以输出 00

样例 2:棋盘中有三个炸弹,分别位于 (1,1),(2,3),(1,3)(1,1),(2,3),(1,3)。对于每个没有炸弹的格子,统计它周围八个方向上相邻格子中的炸弹数量即可。例如,第 11 行第 22 列周围有 33 个炸弹,因此输出 33

数据范围

测试点 分值 特殊限制
1 30 n=1n=1,棋盘只有一行
2 k=1k=1,只有一个炸弹
3 40 无额外限制

对于所有测试点,保证 1n,m5001 \le n,m \le 5001kn×m1 \le k \le n \times m。每个格子至多包含一个炸弹。