#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define rep(i,n) repl(i,0,n) #define mp(a,b) make_pair(a,b) #define pb(a) push_back(a) #define all(x) (x).begin(),(x).end() #define dbg(x) cout<<#x"="<>n; rep(i,n) mat[0][i] = i+1; int cnt=n+1; int ii=0, jj=n-1; int di[]={1, 0, -1, 0}, dj[]={0, -1, 0, 1}; int dd=0; for(int reps=2*(n-1); reps>=1; reps--){ int go=(reps+1)/2; rep(i, go){ ii += di[dd%4]; jj += dj[dd%4]; // printf("%d,%d\n", ii,jj); mat[ii][jj]=cnt; cnt++; } dd++; } rep(i,n){ rep(j,n){ print3(mat[i][j]); if(j!=n-1)printf(" "); } printf("\n"); } return 0; }