#include<iostream> using namespace std; void change(int *f,int a) { int *x,*max,*mix; int *y,m=1,b,x1; int *str[10]; max=f; for(x=f+1;x<f+a*a-1;x++) { if(*x>*max) max=x; } m=*(f+(a*a-1)/2); *(f+(a*a-1)/2)=*max; *max=m; m=1; for(m=1;m<=4;m++) { if(m==1) mix=f; else mix=f+1; for(y=f;y<=f+a*a-1;y++) { if(m==2&&y==f) y++; else if(m==3&&(y==f||y==f+a-1)) y++; else if(m==4&&(y==f||y==f+a-1||y==f+a*a-a)) y++; if(*mix>*y) mix=y; } if(m==1) { x1=*f;*f=*mix; *mix=x1; } else if(m==2){ x1=*(f+a-1);*(f+a-1)=*mix; *mix=x1; } else if(m==3){ x1=*(f+a*a-a);*(f+a*a-a)=*mix; *mix=x1; } else { x1=*(f+a*a-1);*(f+a*a-1)=*mix; *mix=x1; } } } int main() { void change(int *,int ); int **a,*p,i,j; int n; cin>>n; p=new int[n*n]; a=new int*[n]; for(i=0; i<n; i++) a[i]=p+n*i; for (i=0; i<n; i++) for (j=0; j<n; j++) cin>>a[i][j]; change(p,n); for (i=0; i<n; i++) { for (j=0; j<n; j++) cout<<a[i][j]<<" "; cout<<endl; } delete []p; delete []a; return 0; }