#include <iostream> using namespace std; void citire (int &n, int s[]) { cin>>n; for (int i=0;i<n*n;i++) cin>>s[i]; } void ordonare (int n, int s[]) { int ordonat=0,aux,i; while (ordonat==0) { ordonat=1; for (i=0;i<n*n-1;i++) if (s[i]<s[i+1]) { aux=s[i]; s[i]=s[i+1]; s[i+1]=aux; ordonat=0; } } } void constr (int n, int s[], int a[100][100]) { int i,j,nivel=0; for (i=0;i<n;i++) { a[i][i]=s[nivel]; nivel++; } for (i=0;i<n;i++) for (j=0;j<n;j++) if (i!=j) { a[i][j]=s[nivel]; nivel++; } } void afis (int a[100][100],int n) { int i,j; for (i=0;i<n;i++) { for (j=0;j<n;j++) cout<<a[i][j]<<' '; cout<<endl; } } int main() { int n,x[100000],a[100][100]; citire(n,x); ordonare(n,x); constr(n,x,a); afis(a,n); return 0; }