func_code_string: #include <bits/stdc++.h>   using namespace std;   int s, n, b[7][7], a[49], used[49], n2;   bool check() {     for (int i = 0; i < (int)(n); i++) {       int sr = 0;       for (int j = 0; j < (int)(n); j++) sr += b[i][j];       if (sr != s) return false;       sr = 0;       for (int j = 0; j < (int)(n); j++) sr += b[j][i];       if (sr != s) return false;     }     int sr = 0;     for (int i = 0; i < (int)(n); i++) sr += b[i][i];     if (sr != s) return false;     sr = 0;     for (int i = 0; i < (int)(n); i++) sr += b[i][n - 1 - i];     if (sr != s) return false;     return true;   }   void rec(int i, int j, int sr) {     if (i == n) {       if (!check()) return;       for (int q = 0; q < (int)(n); q++) {         for (int w = 0; w < (int)(n); w++) {           if (w) printf(   );           printf( %d , b[q][w]);         }         printf(  n );       }       exit(0);     }     if (j == n - 1) {       int r1 = s - sr;       int r2 = r1;       int r3 = r1;       if (i == n - 1) {         r2 = 0, r3 = 0;         for (int z = 0; z < (int)(n - 1); z++) r2 += b[z][z], r3 += b[z][n - 1];         r2 = s - r2, r3 = s - r3;       }       if (r1 != r2 || r1 != r3) return;       for (int q = 0; q < (int)(n2); q++)         if (!used[q] && a[q] == r1) {           used[q] = true;           b[i][j] = a[q];           rec(i + 1, 0, 0);           used[q] = false;           break;         }       return;     }     if (i == n - 1) {       int sw = 0;       for (int z = 0; z < (int)(n - 1); z++) sw += b[z][j];       int t1 = s - sw;       int t2 = t1;       if (j == 0) {         int ss = 0;         for (int z = 0; z < (int)(n - 1); z++) ss += b[z][n - 1 - z];         t2 = s - ss;       }       if (t1 != t2) return;       for (int q = 0; q < (int)(n2); q++)         if (!used[q] && a[q] == t1) {           used[q] = true;           b[i][j] = a[q];           rec(i, j + 1, sr + a[q]);           used[q] = false;         }       return;     }     int lu = a[0] - 1;     for (int q = 0; q < (int)(n2); q++)       if (!used[q] && a[q] != lu) {         used[q] = true;         b[i][j] = lu = a[q];         rec(i, j + 1, sr + lu);         used[q] = false;       }   }   int aa(int x) { return x < 0 ? -x : x; }   int main() {     scanf( %d , &n);     n2 = n * n;     for (int i = 0; i < (int)(n2); i++) scanf( %d , &a[i]);     sort(a, a + n2);     s = 0;     for (int i = 0; i < (int)(n2); i++) s += a[i];     s /= n;     printf( %d n , s);     rec(0, 0, 0);     return 0;   }   