#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LIM 105 int n, a[LIM * LIM]; int mat[LIM][LIM]; int main() { // freopen("date.in", "r", stdin); // freopen("date.out","w", stdout); scanf("%d", &n); for(int i = 0; i < n * n; i++) { scanf("%d", &a[i]); } sort(a, a + (n * n), greater()); int i = 0; for(i = 0; i < n; i++) { mat[i][i] = a[i]; } int cnt = i; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(i != j) { mat[i][j] = a[cnt]; cnt++; } } } for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { printf("%d", mat[i][j]); if(j < n - 1) { printf(" "); } } printf("\n"); } return 0; }