#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;
}
|