AT_agc066_a [AGC066A] Adjacent Difference

Description

[problemUrl]: https://atcoder.jp/contests/agc066/tasks/agc066_a $ N $ 行 $ N $ 列のマス目があります.上から $ i $ 行目,左から $ j $ 列目のマスをマス $ (i,j) $ と表します. 各マスには整数がひとつずつ書き込まれており,はじめマス $ (i,j) $ に書き込まれている整数は $ A_{i,j} $ です. あなたは次の操作を繰り返し行うことができます: - $ 1\leq\ i,\ j\leq\ N $ を満たす整数 $ i,j $ および整数 $ x $ を選び,$ A_{i,j} $ に $ x $ を加える.この操作にはコストが $ |x| $ かかる. 正整数 $ d $ が与えられます.あなたの目標は次の条件が成り立つようにすることです: - 上下左右の $ 4 $ 方向に隣接する $ 2 $ マスに書き込まれている整数の差は $ d $ 以上である.より形式的には,次の $ 2 $ 条件が成り立つ: - $ 1\leq\ i\leq\ N-1 $, $ 1\leq\ j\leq\ N $ を満たす整数 $ i,\ j $ に対して $ |A_{i,j}-A_{i+1,j}|\geq\ d $. - $ 1\leq\ i\leq\ N $, $ 1\leq\ j\leq\ N-1 $ を満たす整数 $ i,\ j $ に対して $ |A_{i,j}-A_{i,j+1}|\geq\ d $. この目標を,総コスト $ \frac12\ dN^2 $ 以下で達成してください.

Input Format

入力は以下の形式で標準入力から与えられます. > $ N $ $ d $ $ A_{1,1} $ $ \cdots $ $ A_{1,N} $ $ \vdots $ $ A_{N,1} $ $ \cdots $ $ A_{N,N} $

Output Format

一連の操作後のマス目の状態を次の形式で出力してください. > $ A_{1,1} $ $ \cdots $ $ A_{1,N} $ $ \vdots $ $ A_{N,1} $ $ \cdots $ $ A_{N,N} $ 条件を満たすマス目の状態が複数存在する場合には,そのどれを出力しても正解となります.総コストを最小化する必要はありません.

Explanation/Hint

### 制約 - $ 2\leq\ N\leq\ 500 $ - $ 1\leq\ d\leq\ 1000 $ - $ -1000\leq\ A_{i,j}\leq\ 1000 $ ### Sample Explanation 1 次のように $ 4 $ 回の操作を行うと,マス目の状態が出力例の通りになります. - $ (i,j,x)=(1,2,7) $ として操作を行う. - $ (i,j,x)=(2,2,-5) $ として操作を行う. - $ (i,j,x)=(3,1,-2) $ として操作を行う. - $ (i,j,x)=(3,2,7) $ として操作を行う. コストの総和は $ 7+5+2+7=21 $ であり,これは $ \frac{1}{2}dN^2=\frac{45}{2} $ 以下です.