func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<long long> ve[100005];   long long vis[100005] = {0}, z = 0, i;   void solve() {     vector<long long> v;     vector<pair<long long, long long> > vp;     map<long long, long long> mp, mpp;     map<long long, long long>::iterator itr;     long long n = 0, m = 0, i = 0, j = 0, k = 0, c = 0, l = 0, r = 0, p = 0,               q = 0, x = 0, y = 0, z = 0, flag = 0, sum = 0;     long long a[300005] = {0}, b[1005] = {0}, ans[25][25];     long long s, t;     cin >> n;     for (i = 0; i < pow(n, 2); i++) cin >> a[i];     for (i = 0; i < pow(n, 2); i++) b[a[i]]++;     for (i = 0; i < 1001; i++)       if (b[i] > 0) vp.push_back(make_pair(b[i], i));     sort(vp.begin(), vp.end());     z = vp.size() - 1;     for (j = 0; j < n / 2; j++) {       for (i = 0; i < n / 2; i++) {         if (vp[z].first >= 4) {           k = vp[z].second;           vp[z].first -= 4;           ans[i][j] = k;           ans[n - i - 1][j] = k;           ans[i][n - j - 1] = k;           ans[n - i - 1][n - j - 1] = k;         } else {           z--;           i--;         }         if (z == -1) {           cout <<  No  << endl;           return;         }       }     }     if (n % 2 == 1) {       s = (n - 1) / 2;       sort(vp.begin(), vp.end());       z = vp.size() - 1;       for (i = 0; i < n / 2; i++) {         if (vp[z].first >= 2) {           k = vp[z].second;           vp[z].first -= 2;           ans[s][i] = k;           ans[s][n - i - 1] = k;         } else {           z--;           i--;         }         if (z == -1) {           cout <<  No  << endl;           return;         }       }       sort(vp.begin(), vp.end());       z = vp.size() - 1;       for (i = 0; i < n / 2; i++) {         if (vp[z].first >= 2) {           k = vp[z].second;           vp[z].first -= 2;           ans[i][s] = k;           ans[n - i - 1][s] = k;         } else {           z--;           i--;         }         if (z == -1) {           cout <<  No  << endl;           return;         }       }       sort(vp.begin(), vp.end());       z = vp.size() - 1;       ans[s][s] = vp[z].second;     }     for (i = 0; i < n; i++)       for (j = 0; j < n; j++)         if (ans[i][j] == 0) {           cout <<  No  << endl;           return;         }     cout <<  Yes  << endl;     for (i = 0; i < n; i++) {       for (j = 0; j < n; j++) cout << ans[i][j] <<     ;       cout << endl;     }   }   bool imp = false;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     int t = 1;     if (imp) cin >> t;     while (t--) solve();     return 0;   }   