配点 : 700 点
問題文
H×W のマス目があり、各マスに整数がひとつずつ書き込まれています。
1≤i≤H, 1≤j≤W に対して、i 行目・j 列目のマスに書き込まれている整数を Ai,j で表します。
あなたは次の操作を、何度でも行うことができます(一度も行わなくてもよいです)。
- 1≤i≤H−1 かつ 1≤j≤W−1 を満たす整数 i,j を選ぶ。
- 整数 x をひとつ選ぶ。
- Ai,j, Ai,j+1, Ai+1,j, Ai+1,j+1 に x を加える。
操作後の ∑i=1H∑j=1W∣Ai,j∣ が最小となるように操作を行うとき、操作後の ∑i=1H∑j=1W∣Ai,j∣ の値および、そのときのマス目の状態を出力してください。
制約
- 2≤H,W≤500
- ∣Ai,j∣≤109
入力
入力は以下の形式で標準入力から与えられます。
H W
A1,1 … A1,W
⋮
AH,1 … AH,W
出力
H+1 行出力してください。
1 行目には、∑i=1H∑j=1W∣Ai,j∣ の値を出力してください。
2 行目から H+1 行目には、マス目の状態を以下の形式で出力してください。
A1,1 … A1,W
⋮
AH,1 … AH,W
条件を満たすマス目の状態が複数存在する場合は、どれを出力しても正解となります。
例えば次のように操作を行うと、出力例のマス目の状態になります。
- (i,j,x)=(1,1,−1) として操作を行う。
- (i,j,x)=(1,2,−4) として操作を行う。
このとき、∑i=1H∑j=1W∣Ai,j∣=0+3+1+3+0+2=9 です。
∣Ai,j∣>109 となるような操作も認められています。