Input The first line contains one integer n (1≤n≤20).
The second line contains n2 integers a1,a2,…,an2 (1≤ai≤1000) — the numbers to put into a matrix of n rows and n columns.
Output If it is possible to put all of the n2 numbers into a matrix of n rows and n columns so that each number is used exactly once, each cell contains exactly one number and the resulting matrix is palindromic, then print “YES”. Then print n lines with n space-separated numbers — the resulting matrix.
If it’s impossible to construct any matrix, then print “NO”.
You can print each letter in any case (upper or lower). For example, “YeS”, “no” and “yES” are all acceptable.
classSolution(): def__init__(self): n = int(input()) num = [] mat = [] res = [] for i inrange(0, 1001): num.append(0) m = input().split() for i inrange(n * n): if num[int(m[i])] == 0: res.append(int(m[i])) num[int(m[i])] += 1 len = int(n / 2) f = True for i inrange(len): for j inrange(len): f = False for k in res: if num[k] >= 4: num[k] -= 4; mat.append(k) f = True break ifnot f: print('No') return if n & 1: colum = [] row = [] for i inrange(len): f = False for k in res: if num[k] >= 2: num[k] -= 2 colum.append(k) f = True break ifnot f: print('No') return for i inrange(len): f = False for k in res: if num[k] >= 2: num[k] -= 2 row.append(k) f = True break ifnot f: print('No') return center = -1 for i in res: if num[i] == 1: num[i] = 0 center = i break if center == -1: print('No') return print('Yes') for i inrange(len): for j inrange(len * i, len * i + len): print(mat[j], end=' ') k = len * i + len - 1 print(colum[i], end=' ') for j inrange(len): print(mat[k], end='') if j == len - 1: print() else: print(end=' ') k -= 1 i = len - 1 for j in row: print(j, end=' ') print(center, end='') for j in row: print(' ' + str(row[i]), end='') i -= 1 print() l = len - 1 for i inrange(len): result=[] for j inrange(len * len - (i + 1) * len, len * len - (i + 1) * len + len): result.append(mat[j]) print(mat[j], end=' ') k = len-1 print(colum[l], end=' ') l -= 1 for j inrange(len): print(result[k],end='') if j == len - 1: print() else: print(end=' ') k -= 1 else: print('Yes') for i inrange(len): for j inrange(len * i, len * i + len): print(mat[j], end=' ') k = len * i + len - 1 for j inrange(len): print(mat[k], end='') if j == len - 1: print() else: print(end=' ') k -= 1 l = len - 1 for i inrange(len): for j inrange(len*len - len * i - len, len*len - len * i): print(mat[j], end=' ') k = len*len - len * i - 1 for j inrange(len): print(mat[k], end='') if j == len - 1: print() else: print(end=' ') k -= 1