#abc347g. G - Grid Coloring 2

G - Grid Coloring 2

Score: 600600 points

问题陈述

有一个 N×NN\times N 的网格,每个单元格包含一个介于 0055(包括 0055)之间的整数。用 (i,j)(i,j) 表示从顶部数第 ii 行,从左侧数第 jj 列的单元格 (1i,jN)(1\leq i,j\leq N)。单元格 (i,j)(i,j) 中写的整数是 Ai,jA _ {i,j}

你可以执行以下操作任意次,包括零次:

  • 选择一个写有 00 的单元格 (i,j)(i,j) 和一个介于 1155(包括 1155)之间的整数 xx。将所选单元格中写的数字改为 xx

操作完成后,设 Bi,jB _ {i,j} 为单元格 (i,j)(i,j) 中写的整数。网格的 成本 定义为相邻单元格中所写整数之差的平方和。换句话说,成本由以下公式表示:

$\displaystyle\sum _ {i=1} ^ N\sum _ {j=1} ^ {N-1}(B _ {i,j}-B _ {i,j+1})^2+\sum _ {i=1} ^ {N-1}\sum _ {j=1} ^ N(B _ {i,j}-B _ {i+1,j})^2$

在操作后所有可能的网格状态中,找到具有最小成本的状态。

如果有多个网格状态具有最小成本,你可以打印其中任意一个。

以上为大语言模型 kimi 翻译,仅供参考。

Problem Statement

There is an N×NN\times N grid where each cell contains an integer between 00 and 55, inclusive. Let (i,j)(i,j) denote the cell at the ii-th row from the top and the jj-th column from the left (1i,jN)(1\leq i,j\leq N). The integer written in cell (i,j)(i,j) is Ai,jA _ {i,j}.

You can perform the following operation any number of times, possibly zero:

  • Choose a cell (i,j)(i,j) with 00 written in it and an integer xx between 11 and 55, inclusive. Change the number written in the chosen cell to xx.

After the operations, let Bi,jB _ {i,j} be the integer written in cell (i,j)(i,j). The cost of the grid is defined as the sum of the squares of the differences between the integers written in adjacent cells. In other words, the cost is represented by the following formula:

$\displaystyle\sum _ {i=1} ^ N\sum _ {j=1} ^ {N-1}(B _ {i,j}-B _ {i,j+1})^2+\sum _ {i=1} ^ {N-1}\sum _ {j=1} ^ N(B _ {i,j}-B _ {i+1,j})^2$

Among all possible states of the grid after the operations, find the one with the minimum cost.

If multiple grid states have the minimum cost, you may print any of them.

Constraints

  • 1N201\leq N\leq20
  • $0\leq A _ {i,j}\leq 5\ (1\leq i\leq N,1\leq j\leq N)$
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

NN

A1,1A _ {1,1} A1,2A _ {1,2} \ldots A1,NA _ {1,N}

A2,1A _ {2,1} A2,2A _ {2,2} \ldots A2,NA _ {2,N}

\vdots  \ \vdots \ddots \vdots

AN,1A _ {N,1} AN,2A _ {N,2} \ldots AN,NA _ {N,N}

Output

Print NN lines. The ii-th line (1iN)(1\leq i\leq N) should contain Bi,1,Bi,2,,Bi,NB _ {i,1},B _ {i,2},\ldots,B _ {i,N} in this order, with spaces in between, after performing operations to minimize the cost.

Sample Input 1

5
0 2 1 0 4
4 0 0 0 2
3 1 0 3 0
1 0 0 0 0
0 0 2 0 5

Sample Output 1

3 2 1 2 4
4 2 2 2 2
3 1 2 3 3
1 1 2 3 4
1 1 2 3 5

The given grid is as follows:

After performing operations to achieve the state shown on the right of the figure, the cost will be 22×6+12×18+02×16=422 ^ 2\times6+1 ^ 2\times18+0 ^ 2\times16=42.

The cost cannot be 4141 or less, so printing the corresponding Bi,jB _ {i,j} for this state would be accepted.

Sample Input 2

3
0 0 0
0 0 0
0 0 0

Sample Output 2

0 0 0
0 0 0
0 0 0

The cost is already 00 from the beginning, so not performing any operations minimizes the cost.

If multiple grid states have the minimum cost, you may print any of them, so the following output would also be accepted:

2 2 2
2 2 2
2 2 2

Sample Input 3

10
1 0 0 3 0 0 0 0 0 0
1 0 0 4 0 1 0 5 0 0
0 0 0 0 0 0 2 0 3 0
0 0 2 0 0 0 4 0 0 3
0 3 4 3 3 0 3 0 0 5
4 1 3 4 4 0 2 1 0 0
2 0 1 0 5 2 0 1 1 5
0 0 0 5 0 0 3 2 4 0
4 5 0 0 3 2 0 3 5 0
4 0 0 5 0 0 0 3 0 5

Sample Output 3

1 2 3 3 3 2 3 4 4 4
1 2 3 4 3 1 3 5 4 4
2 2 2 3 3 2 2 3 3 3
2 2 2 3 3 3 4 3 3 3
3 3 4 3 3 3 3 2 3 5
4 1 3 4 4 3 2 1 2 4
2 2 1 4 5 2 2 1 1 5
3 3 3 5 4 3 3 2 4 5
4 5 4 4 3 2 3 3 5 5
4 4 4 5 4 3 3 3 4 5
}