AT_utpc2020_g D. D. Construction
Description
[problemUrl]: https://atcoder.jp/contests/utpc2020/tasks/utpc2020_g
整数 $ N $ と $ N $ $ \times $ $ N $ 行列 $ A $ が与えられます。 以下の条件を満たす整数 $ M $ と $ M $ 個の $ N\times\ N $ 行列 $ B_1\ ,\ \ldots\ ,\ B_M $ を出力してください。
- $ 1\ \leq\ M\ \leq\ 1000 $
- 任意の $ 1\leq\ i\ \leq\ M $ について、$ B_i $ の全ての成分は絶対値が $ 40 $ 以下の整数
- 任意の $ 1\ \leq\ i\ \leq\ M $ について、$ \det(B_i)\ =\ \det(A) $
- $ \sum_{i=1}^{M}\ B_i\ =\ \text{diag}(MA_{11}\ ,\ MA_{22}\ ,\ \ldots\ ,\ MA_{NN}) $
入力の条件下で、上記の制約を満たす出力が可能であることが証明できます。
$ \det $ の定義 行列 $ A $ に対し、 $ \det(A) $ は $ A $ の行列式を表します。 [ 行列式のWikipediaへのリンク ](https://ja.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F)
$ \text{diag} $ の定義 $ N $ 個の整数 $ x_1,\ \cdots\ ,\ x_N $ に対して、 $ \text{diag}(x_1\ ,\ x_2\ ,\ \ldots\ ,\ x_N) $ は、 - $ 1\leq\ i\ \leq\ N $ に対し、 $ i $ 行 $ i $ 列目の成分が $ x_i $
- $ 1\leq\ i\ ,\ j\ \leq\ N,\ i\neq\ j $ に対し、 $ i $ 行 $ j $ 列目の成分が $ 0 $
となる $ N\times\ N $ 行列を表します。
[対角行列のwikipediaへのリンク](https://ja.wikipedia.org/wiki/%E5%AF%BE%E8%A7%92%E8%A1%8C%E5%88%97)
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_{11} $ $ \ldots $ $ A_{1N} $ $ \vdots $ $ A_{N1} $ $ \ldots $ $ A_{NN} $
Output Format
$ 1 $ 行目に行列の個数 $ M $ を出力せよ。 続く $ NM $ 行のうち、 $ 1\ \leq\ i\ \leq\ M $ , $ 1\ \leq\ j\ \leq\ N $ を満たす $ i\ ,
\ j $ に対して、 $ (i\ -\ 1)N\ +\ j $ 行目に $ B_i $ の $ j $ 行目を空白区切りで出力せよ。具体的には以下の形式で出力せよ。
> $ M $ $ (B_1)_{11} $ $ \ldots $ $ (B_1)_{1N} $ $ \vdots $ $ (B_1)_{N1} $ $ \ldots $ $ (B_1)_{NN} $ $ \vdots $ $ (B_M)_{11} $ $ \ldots $ $ (B_M)_{1N} $ $ \vdots $ $ (B_M)_{N1} $ $ \ldots $ $ (B_M)_{NN} $
ただし、出力は問題文中の条件を満たす必要がある。 条件を満たす解が複数存在する場合は、どれを出力してもよい。
Explanation/Hint
### 制約
- 入力は全て整数である。
- $ 2\leq\ N\ \leq\ 8 $
- $ |A_{ij}|\ \leq\ 40 $
### Sample Explanation 1
出力された行列は、 $ \begin{pmatrix}
\ -2&-1&2\ \\
\ 0&1&1\ \\
\ 1&0&-2\
\ \end{pmatrix} $ と $ \begin{pmatrix}
\ 0&0&-1\ \\
\ -1&2&-2\ \\
\ 0&1&1
\ \end{pmatrix} $ と $ \begin{pmatrix}
\ 5&1&-1\ \\
\ 1&0&1\ \\
\ -1&-1&4
\ \end{pmatrix} $ の $ 3 $ つであり、 いずれも行列式は $ 1\ =\ \det(A) $ で、これらの行列の和は、 $ \begin{pmatrix}
\ 3&0&0\ \\
\ 0&3&0\ \\
\ 0&0&3
\ \end{pmatrix} $ になります。 これは、 $ \text{diag}(3,3,3)\ =
\ \begin{pmatrix}
\ 3&0&0\ \\
\ 0&3&0\ \\
\ 0&0&3
\ \end{pmatrix} $ に等しいです。