#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #define rep(i,n) for(int i=0;i<(n);i++) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define sz(x) ((int)(x).size()) #define pb push_back using ll = long long; using namespace std; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b dy={0,1,0,-1}; vector dx={1,0,-1,0}; int in(int y,int x,int N){ return 0<=y&&y> N; vector> A(N,vector(N,-1)); int y=0,x=0; A[y][x]=1; int d=0; for(int i=2;i<=N*N;i++){ if(!in(y+dy[d],x+dx[d],N) || A[y+dy[d]][x+dx[d]]!=-1) d=(d+1)%4; int ny=y+dy[d],nx=x+dx[d]; A[ny][nx]=i; y=ny,x=nx; } rep(i,N){ rep(j,N){ if(j) printf(" "); printf("%03d",A[i][j]); } printf("\n"); } return 0; }