#CF1521E. 美丽矩阵
美丽矩阵
美丽矩阵
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
给定 种正整数。数字 恰好有 个,所有数字的总数为 。
一个 的矩阵称为美丽矩阵,当且仅当:
- 它恰好包含给定的全部数字;空单元格以 表示;
- 每个 子矩阵至多有 个非空单元格;
- 每个 子矩阵的两条对角线上,若两个端点均非空,则端点数字必须不同。
请构造边长 最小的美丽矩阵。
输入格式
第一行一个整数 ,表示测试用例数。
每个测试用例的第一行包含两个整数 。
第二行包含 个整数 ,其中 表示数字 的个数。
输出格式
对每个测试用例,先输出最小边长 。
随后输出 行,每行 个整数。第 行第 个数 应满足 ;其中 表示空单元格。
若有多种合法构造,输出任意一种。
样例输入
2
3 4
2 0 0 1
15 4
2 4 8 1
样例输出
2
4 1
0 1
5
3 0 0 2 2
3 2 3 3 0
0 1 0 4 0
3 0 0 0 0
2 1 3 3 3
数据范围
对所有数据:
- ;
- ;
- 且 ;
- 单个输入文件内所有测试用例的 之和、 之和均不超过 。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | 每组 ,单文件 |
| 2 | 40 | 每组 ,单文件 |
| 3 | 无特殊限制 |
各子任务数据彼此独立计分。
提示
只表示空单元格,不属于给定数字,也不参与对角线相等的判断。