CafeCoder Test 002
コンテスト日時
2020/11/23 (Mo) 21:00 - 22:30

B - 2D sort

Benihuki
2
s
1024
MB
150

問題文

$ N^2 $ 個の整数 $ A_i $ が与えられます。
$ A$ の要素をそれぞれ1つずつ含み、次の条件を満たす $N$ 行 $N$ 列の行列 $B$ を構成してください。
ただし、条件を満たす行列 $B$ が複数ある場合は、 $abs(B_{i, j + 1} - B_{i + 1, j})$ の総和が最小となるようなもの を出力してください。

  • $B_{i, j + 1} \lt B_{i + 1, j} $ $(1 \leq i \lt N,\ 1 \leq j \lt N)$
  • $B_{i, j} \lt B_{i + 1, j} $ $(1 \leq i \lt N,\ 1 \leq j \leq N)$
  • $B_{i, j} \lt B_{i, j + 1} $ $(1 \leq i \leq N,\ 1 \leq j \lt N)$

制約

  • $ 2 \leq N \leq 10^3 $
  • $ 0 \leq A_i \leq 10^9 $
  • $ A_i \neq A_j (i \neq j) $

入力

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

$ N $
$ A_1 \ A_2 \ \ldots \ A_{N^2} $

出力

$N$ 行 $N$ 列の行列 $B$ を以下の形式で標準出力に出力してください。
ただし、条件を満たす行列 $B$ が複数ある場合は $abs(B_{i, j + 1} - B_{i + 1, j})$ の総和が最小となるようなものを出力してください。

$ B_{1, 1} \ \dots \ B_{1, N} $
$ \vdots $
$ B_{N, 1} \ \dots \ B_{N, N} $
入力例 1
2 2 7 1 8
出力例 1
1 2 7 8

$A_i$ は $N^2$ 個与えられることに注意してください。

提出
C++23 (g++ 12.2.0)