// Author: Cheng Zhigang 2016-5-1
#include "stdafx.h"
#include<iostream>using namespace std;
int main()
{
int nmax;
int mmax;
cin>>nmax;
mmax = nmax;
int **p= new int*[nmax];
for(int i =0;i<nmax;i++)
{
p[i]=new int [nmax];
memset(p[i],0,sizeof(int)*nmax);
}
int **q= new int*[nmax];
for(int i =0;i<nmax;i++)
{
q[i]=new int [nmax];
memset(q[i],0,sizeof(int)*nmax);
}
int temp=0;
for(int i=0;i<nmax;i++)
{
for(int j =0;j<nmax;j++)
{
// cin>>p[i][j]>>" ";
cin>>temp;
p[i][j] =temp;
}
// cout<<endl;
} // Input original array
for(int i=0;i<nmax;i++)
{
for(int j =0;j<nmax;j++)
{
// cin>>p[i][j]>>" ";
// cin>>temp;
cout<<p[i][j]<<" ";
}
cout<<endl;
} // output original array
for(int i=0;i<nmax;i++)
{
for(int j =0;j<nmax;j++)
{
q[j][nmax-1-i]=p[i][j];
}
} // original array conversion
for(int i=0;i<nmax;i++)
{
for(int j =0;j<nmax;j++)
{
cout<<q[i][j]<<" ";
}
cout<<endl;
} // output original array
for(int i =0;i<nmax;i++)
{
// q[i]=new int [nmax];
delete []q[i];
}
delete [] q;
for(int i =0;i<nmax;i++)
{
// q[i]=new int [nmax];
delete []p[i];
}
delete []p;
return 1;
}