CF1118C Palindromic Matrix

题目描述

我们称一个方阵为“回文矩阵”,如果将其行的顺序反转后不变,并且将其列的顺序反转后也不变。 例如,以下矩阵是回文矩阵: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1118C/1dd62ecf9cdea049a4333ac1caa6ce864c1d5fc5.png) 以下矩阵不是回文矩阵,因为将行顺序反转后会发生变化: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1118C/2143b8b786a0f045139a90d99c3f905c3e226fac.png) 以下矩阵不是回文矩阵,因为将列顺序反转后会发生变化: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1118C/fe33a9bda586416fffd510345806131041ef4caa.png) 现在给定 $n^2$ 个整数,请你将它们填入一个 $n$ 行 $n$ 列的矩阵中,使得每个数恰好使用一次,每个格子恰好填入一个数,并且最终得到的矩阵是回文矩阵。如果有多种方案,输出任意一种。如果无解,输出 "NO"。

输入格式

第一行包含一个整数 $n$($1 \le n \le 20$)。 第二行包含 $n^2$ 个整数 $a_1, a_2, \dots, a_{n^2}$($1 \le a_i \le 1000$),表示要填入矩阵的数字。

输出格式

如果存在一种方案能够将所有 $n^2$ 个数填入 $n$ 行 $n$ 列的矩阵,使得每个数恰好使用一次,每个格子恰好填入一个数,并且最终矩阵是回文矩阵,则输出 "YES"。接下来输出 $n$ 行,每行 $n$ 个用空格分隔的整数,表示构造出的矩阵。 如果无法构造出这样的矩阵,则输出 "NO"。 输出中的字母大小写不敏感,例如 "YeS"、"no" 和 "yES" 都是可以接受的。

说明/提示

注意,对于前两个样例,存在多种可行答案。 由 ChatGPT 4.1 翻译