#include <iostream>
using namespace std;
void citire(int A[][101], int &n)
{
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            cin>>A[i][j];
}
void afisare(int A[][101], int n)
{
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            cout<<A[i][j]<<" ";
        cout<<endl;
    }
}
void maxN(int A[][101],int n, int &imax, int &jmax)
{
    int maxx=0;
    for(int i=1;i<=n/2;i++)
        for(int j=i+1;j<n+1-i;j++)
           if(A[i][j]>maxx) {maxx=A[i][j]; imax=i; jmax=j; }
}
void maxS(int A[][101],int n, int &imax, int &jmax)
{
    int maxx=0;
    for(int i=n/2+1;i<=n;i++)
        for(int j=n+1-i+1;j<i;j++)
           if(A[i][j]>maxx) {maxx=A[i][j]; imax=i; jmax=j; }
}
void maxV(int A[][101],int n, int &imax, int &jmax)
{
    int maxx=0;
    for(int i=2;i<=n-1;i++)
        for(int j=1;j<min(i,n+1-i);j++)
           if(A[i][j]>maxx) {maxx=A[i][j]; imax=i; jmax=j; }
}
void maxE(int A[][101],int n, int &imax, int &jmax)
{
    int maxx=0;
    for(int i=2;i<=n-1;i++)
        for(int j=max(i,n+1-i)+1;j<=n;j++)
           if(A[i][j]>maxx) {maxx=A[i][j]; imax=i; jmax=j; }
}
void inter(int A[][101], int i, int j, int x, int y)
{
    int aux=A[i][j];
    A[i][j]=A[x][y];
    A[x][y]=aux;
}
void interNESV(int A[][101], int n)
{
    int ni,nj,si,sj,ei,ej,vi,vj;
    maxN(A,n,ni,nj);
    maxE(A,n,ei,ej);
    maxS(A,n,si,sj);
    maxV(A,n,vi,vj);
    inter(A,ni,nj,vi,vj);
    inter(A,vi,vj,si,sj);
    inter(A,si,sj,ei,ej);
}
int main()
{
    int A[101][101],n;
    citire(A,n);
    interNESV(A,n);
    afisare(A,n);
    return 0;
}
  |