#include <iostream> 
#include <windows.h>
using namespace std; 
int main () 
{ int j,k,i,N,x=1,y=-1,t; 
cout << "(N x N), N="; cin>>N; 
int* a=new int[N*N]; 
int** p=new int*[N]; 
for(j=0;j-N;p[j++]=&a[j*N]); 
for(j=k=i=0;i++-N*N/2;p[k][j]=i,j+=x,k+=y,t=1-2*(j<0||k<0),x*=t,y*=t,j+=(j<0),k+=(k<0)); 
for(i--;++i-N*N; p[k][j]=i,j+=x,k+=y,t=2*(j>=N||k>=N),x*=1-t,y*=1-t,j+=t-3*(j>=N),k+=t-3*(k>=N)); 
p[N-1][N-1]=i; 
for(j=0;j-N;j++,cout << endl) for(k=0;k-N;k++) cout << p[j][k] << '\t'; 
return 0; 
}