CF1521E Nastia and a Beautiful Matrix

题目描述

你喜欢数字,对吧?Nastia 有很多数字,她想和你分享!是不是很棒? 令 $a_i$ 为你拥有的等于 $i$ ($1 \le i \le k$) 的数字的数量。 一个 $n \times n$ 的矩阵被称为**美丽的**,当且仅当它包含了你拥有的所有数字,并且对于该矩阵的每个 $2 \times 2$ 子矩阵,都满足以下条件: * 被占据(非零)的单元格数量不超过 3 个; * 对角线不包含相同的数字。 请构造一个尺寸最小的美丽矩阵。

输入格式

第一行包含一个整数 $t$ ($1 \le t \le 10000$) —— 测试用例的数量。 每个测试用例的第一行包含两个整数 $m$ 和 $k$ ($1 \le m, k \le 10^5$) —— 从 Nastya 那里获得的数字总数以及数组 $a$ 的长度。 每个测试用例的第二行包含 $k$ 个整数 $a_1, a_2, \dots, a_k$ ($0 \le a_i \le m, \sum a_i = m$),其中 $a_i$ 是你拥有的数字 $i$ 的数量。 保证所有测试用例中 $m$ 的总和以及 $k$ 的总和均不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,第一行输出一个整数 $n$ —— 你构造的美丽矩阵的大小。 接下来的 $n$ 行,每行输出 $n$ 个整数 $b_{i,j}$ ($0 \le b_{i,j} \le k$,如果该位置为空,则输出 $b_{i,j}=0$)—— 你构造的美丽矩阵 $b$。

说明/提示

注意,本题中 $0$ 表示空白格,不是数字。 第一个测试用例的可能答案示例: $\begin{array}{cc} 1 & 1 \\ 4 & 0 \\ \end{array} \hspace{0.5cm} \begin{array}{cc} 1 & 4 \\ 1 & 0 \\ \end{array} \hspace{0.5cm} \begin{array}{cc} 4 & 0 \\ 1 & 1 \\ \end{array}$ 第一个测试用例的不合法矩阵示例: $\begin{array}{cc} 1 & 0 \\ 4 & 1 \\ \end{array} \hspace{0.5cm} \begin{array}{cc} 4 & 1 \\ 7 & 1 \\ \end{array} \hspace{0.5cm} \begin{array}{cc} 1 & 0 \\ 4 & 0 \\ \end{array}$ 第二个测试用例的不合法矩阵示例: $\begin{array}{cc} 3 & 4 & 0 & 2 & 2 \\ 3 & 2 & 3 & 3 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 3 & 0 & 0 & 0 & 0 \\ 2 & 1 & 3 & 3 & 3 \\ \end{array}$ 除了左上角的子矩阵包含了 $4$ 个数字外,其他都没问题。