SZ#G4M08. 【GESP强化 四级】爆炸方格

提交1 通过1
通过率100%
时间限制1000ms
内存限制256MiB
    ID: 11195 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 普及- 上传者: 标签>GESPGESP强化C++c++编程题二维数组二维字符数组曼哈顿距离逐格模拟

题目描述

小珅面前有一块 RRCC 列的方格板,从上到下、从左到右用坐标 (i,j)(i,j) 表示每个方格。字符 BijB_{ij} 描述方格当前状态:. 表示空格,# 表示有墙,数字 19 表示该格放着一枚对应威力的炸弹。

下一时刻,所有炸弹同时爆炸。威力为 pp 的炸弹会把与它的曼哈顿距离不超过 pp 的所有方格变成空格,炸弹所在格本身也会变成空格。坐标 (r1,c1)(r_1,c_1)(r2,c2)(r_2,c_2) 的曼哈顿距离为 r1r2+c1c2|r_1-r_2|+|c_1-c_2|。不同炸弹的爆炸范围可以重叠;未被任何爆炸波及的墙保持不变。需要得到全部爆炸结束后的完整方格板。

输入格式

第一行输入两个整数 R,CR,C

接下来 RR 行,每行输入一个长度为 CC 的字符串,表示方格板。每个字符是 .#19 中的一个。

输出格式

输出 RR 行,表示爆炸后的方格板。格式与输入方格相同,不需要再次输出 R,CR,C

4 4
.1.#
###.
.#2.
#.##
...#
#...
....
#...
2 5
..#.#
###.#
..#.#
###.#
2 3
11#
###
...
..#

样例解释

  • 样例 1 中,(1,2)(1,2) 的威力 11 炸弹和 (3,3)(3,3) 的威力 22 炸弹同时爆炸,两者的爆炸范围存在重叠;被任一炸弹覆盖的格子都变为 .
  • 样例 2 中没有炸弹,所以方格板保持不变。
  • 样例 3 中,两枚威力 11 的炸弹会清除自身及距离不超过 11 的格子,右下角较远的墙不会被清除。

数据范围与约定

  • 1R,C201 \le R,C \le 20
  • BijB_{ij}.#19 中的一个