remaked mine sweeper

2 secs 1024 MB
nikoro1024's icon nikoro1024

注意

PythonはPyPyを推奨します。

問題文

HH 行、横 WW 列のグリッドがあり、グリッドの上から ii 番目の行を ii 行目、左から jj 番目の列を jj 列目と呼びます。
ただし、グリッドの上下左右はそれぞれ繋がっているものとします。特に、HH 行目の下に 11 行目が、WW 列目の右に 11 列目があるものとします。

各マスには爆弾が 高々 1\mathbf{1} 入っており、iijj 列目のマスを中心とする 3×33 \times 3 マスの範囲内に存在する爆弾の個数は合計 Ai,jA_{i, j} 個です。

全てのマスについて、そのマスに入っている爆弾の個数を出力してください。

制約

  • 4H20004 \leq H \leq 2000
  • 4W20004 \leq W \leq 2000
  • H×WH \times W33 の倍数でない。
  • 与えられる入力についての答えが必ず存在する。

入力

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

HHWW
A1,1A_{1, 1}A1,2A_{1, 2}\ldotsA1,WA_{1, W}
A2,1A_{2, 1}A2,2A_{2, 2}\ldotsA2,WA_{2, W}
\vdots \hspace{45pt} \ddots
AH,1A_{H, 1}AH,2A_{H, 2}\ldotsAH,WA_{H, W}

出力

答えを以下の形式で出力せよ。ここで Bi,jB_{i, j} は、iijj 行目のマスに入っている爆弾の個数である。

B1,1B_{1, 1}B1,2B_{1, 2}\ldotsB1,WB_{1, W}
B2,1B_{2, 1}B2,2B_{2, 2}\ldotsB2,WB_{2, W}
\vdots \hspace{45pt} \ddots
BH,1B_{H, 1}BH,2B_{H, 2}\ldotsBH,WB_{H, W}

サンプル1

入力1
4 4
6 6 5 7
4 3 3 5
6 4 5 6
5 5 5 6
出力1
1 0 1 0
1 0 0 1
0 0 0 1
1 1 1 1

例えば、4444 列目のマスを中心とする 3×33 \times 3 マスの範囲について、

  • 3333 列目のマスには爆弾が 00 個入っています。
  • 3344 列目のマスには爆弾が 11 個入っています。
  • 3311 列目のマスには爆弾が 00 個入っています。

  • 4433 列目のマスには爆弾が 11 個入っています。
  • 4444 列目のマスには爆弾が 11 個入っています。
  • 4411 列目のマスには爆弾が 11 個入っています。

  • 1133 列目のマスには爆弾が 11 個入っています。
  • 1144 列目のマスには爆弾が 00 個入っています。
  • 1111 列目のマスには爆弾が 11 個入っています。

したがって、その範囲内に存在する爆弾の個数は、合計 66 個です。

サンプル2

入力2
5 5
4 5 6 4 2
4 4 6 6 4
5 3 4 6 6
4 2 2 3 4
4 4 3 2 2
出力2
0 1 1 0 0
0 1 1 1 1
0 0 0 1 1
1 0 0 0 1
0 1 0 0 0

提出


Go (1.21)