atcoder#ABC295B. [ABC295B] Bombs

[ABC295B] Bombs

配点 : 200200

問題文

RR 行横 CC 列の盤面があります。上から ii 行目、左から jj 列目のマスを (i,j)(i,j) と表します。

(i,j)(i,j) の現在の状態が文字 Bi,jB_{i,j} として与えられます。 . は空きマス、# は壁があるマスを表し、 1, 2,\dots, 9 はそれぞれ威力 1,2,,91,2,\dots,9 の爆弾があるマスを表します。

次の瞬間に、全ての爆弾が同時に爆発します。 爆弾が爆発すると、爆弾があるマスからのマンハッタン距離がその爆弾の威力以下であるような全てのマス(その爆弾があるマス自体を含む)が空きマスに変わります。 ここで、(r1,c1)(r_1,c_1) から (r2,c2)(r_2,c_2) までのマンハッタン距離は r1r2+c1c2|r_1-r_2|+|c_1-c_2| です。

爆発後の盤面を出力してください。

制約

  • 1R,C201\leq R,C \leq 20
  • R,CR,C は整数
  • Bi,jB_{i,j}., #, 1, 2,\dots, 9 のいずれかである

入力

入力は以下の形式で標準入力から与えられる。

RR CC

B1,1B1,2B1,CB_{1,1}B_{1,2}\dots B_{1,C}

\vdots

BR,1BR,2BR,CB_{R,1}B_{R,2}\dots B_{R,C}

出力

爆発後の盤面を RR 行で出力せよ。盤面の表し方は入力と同じ形式を用いること (RRCC を出力する必要はない)。

4 4
.1.#
###.
.#2.
#.##
...#
#...
....
#...

爆弾の効果範囲を表す図

  • (1,2)(1,2) にある爆弾の爆発によって、上図の青いマスと紫のマスが空きマスに変わります。
  • (3,3)(3,3) にある爆弾の爆発によって、上図の赤いマスと紫のマスが空きマスに変わります。

この例のように、爆弾が効果を及ぼす範囲に被りがあることもあります。

2 5
..#.#
###.#
..#.#
###.#

爆弾が 11 つもないこともあります。

2 3
11#
###
...
..#
4 6
#.#3#.
###.#.
##.###
#1..#.
......
#.....
#....#
....#.