AT_arc135_d [ARC135D] Add to Square
Description
[problemUrl]: https://atcoder.jp/contests/arc135/tasks/arc135_d
$ H\times\ W $ のマス目があり、各マスに整数がひとつずつ書き込まれています。 $ 1\leq\ i\leq\ H $, $ 1\leq\ j\leq\ W $ に対して、$ i $ 行目・$ j $ 列目のマスに書き込まれている整数を $ A_{i,j} $ で表します。
あなたは次の操作を、何度でも行うことができます(一度も行わなくてもよいです)。
- $ 1\leq\ i\leq\ H\ -\ 1 $ かつ $ 1\leq\ j\leq\ W\ -\ 1 $ を満たす整数 $ i,\ j $ を選ぶ。
- 整数 $ x $ をひとつ選ぶ。
- $ A_{i,j} $, $ A_{i,j+1} $, $ A_{i+1,j} $, $ A_{i+1,j+1} $ に $ x $ を加える。
操作後の $ \sum_{i=1}^H\ \sum_{j=1}^W\ |A_{i,j}| $ が最小となるように操作を行うとき、操作後の $ \sum_{i=1}^H\ \sum_{j=1}^W\ |A_{i,j}| $ の値および、そのときのマス目の状態を出力してください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ H $ $ W $ $ A_{1,1} $ $ \ldots $ $ A_{1,W} $ $ \vdots $ $ A_{H,1} $ $ \ldots $ $ A_{H,W} $
Output Format
$ H\ +\ 1 $ 行出力してください。 $ 1 $ 行目には、$ \sum_{i=1}^H\ \sum_{j=1}^W\ |A_{i,j}| $ の値を出力してください。 $ 2 $ 行目から $ H+1 $ 行目には、マス目の状態を以下の形式で出力してください。
> $ A_{1,1} $ $ \ldots $ $ A_{1,W} $ $ \vdots $ $ A_{H,1} $ $ \ldots $ $ A_{H,W} $
条件を満たすマス目の状態が複数存在する場合は、どれを出力しても正解となります。
Explanation/Hint
### 制約
- $ 2\leq\ H,\ W\ \leq\ 500 $
- $ |A_{i,j}|\leq\ 10^9 $
### Sample Explanation 1
例えば次のように操作を行うと、出力例のマス目の状態になります。 - $ (i,\ j,\ x)\ =\ (1,\ 1,\ -1) $ として操作を行う。 - $ (i,\ j,\ x)\ =\ (1,\ 2,\ -4) $ として操作を行う。 このとき、$ \sum_{i=1}^H\ \sum_{j=1}^W\ |A_{i,j}|\ =\ 0\ +\ 3\ +\ 1\ +\ 3\ +\ 0\ +\ 2\ =\ 9 $ です。
### Sample Explanation 2
$ |A_{i,j}|\ >\ 10^9 $ となるような操作も認められています。