#include<bits/stdc++.h> using namespace std;

long long a[40][40];
int main(){
    int n,x[1600],y[1600];
    scanf("%d",&n);
    for(int i=0;i<=n;i++){
        a[0][i]=260408,a[i][0]=260408;
    }
    a[1][n/2+1]=1;
    x[1]=1,y[1]=n/2+1;
    for(int i=2;i<=n*n;i++){
        if(x[i-1]==1&&y[i-1]!=n){
            a[n][y[i-1]+1]=i;
            x[i]=n,y[i]=y[i-1]+1;
        }
        else if(y[i-1]==n&&x[i-1]!=1){
            a[x[i-1]-1][1]=i;
            x[i]=x[i-1]-1,y[i]=1;
        }
        else if(a[1][n]==i-1){
            a[2][n]=i;
            x[i]=2,y[i]=n;
        }
        else if(x[i-1]!=1&&y[i-1]!=n){
            if(a[x[i-1]-1][y[i-1]+1]==0){
                a[x[i-1]-1][y[i-1]+1]=i;
                x[i]=x[i-1]-1,y[i]=y[i-1]+1;
            }
            else{
                a[x[i-1]+1][y[i-1]]=i;
                x[i]=x[i-1]+1,y[i]=y[i-1];
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
return 0;
}

0 comments

No comments so far...