func_code_string: #include <bits/stdc++.h>   using namespace std;   bool flag = false;   long long n;   long long mat[1000][1000];   bool vis[1000][1000];   long long ans[1000][1000];   bool isSol() {     long long s = 0;     for (int i = 0; i < n; i++) {       s += ans[i][i];     }     long long s2 = 0;     for (int i = 0; i < n; i++) {       s2 += ans[n - i - 1][i];     }     if (s2 != s) return false;     for (int i = 0; i < n; i++) {       s2 = 0;       for (int j = 0; j < n; j++) {         s2 += ans[i][j];       }       if (s2 != s) return false;     }     for (int i = 0; i < n; i++) {       s2 = 0;       for (int j = 0; j < n; j++) {         s2 += ans[j][i];       }       if (s2 != s) return false;     }     return true;   }   void find_sol(long long pos) {     if (flag) return;     if (pos == n * n) {       if (isSol()) flag = true;       return;     }     long long pos_x = pos / n;     long long pos_y = pos % n;     for (int i = 0; i < n; i++) {       for (int j = 0; j < n; j++) {         if (!vis[i][j] && !flag) {           vis[i][j] = true;           ans[pos_x][pos_y] = mat[i][j];           find_sol(pos + 1);           vis[i][j] = false;         }       }     }   }   int main() {     cin >> n;     for (int i = 0; i < n; i++) {       for (int j = 0; j < n; j++) {         cin >> mat[i][j];         vis[i][j] = false;       }     }     find_sol(0);     long long s = 0;     for (int i = 0; i < n; i++) s += ans[i][0];     cout << s << endl;     for (int i = 0; i < n; i++) {       for (int j = 0; j < n; j++) {         cout << ans[i][j] <<    ;       }       cout << endl;     }     return 0;   }   