#include using namespace std; #define rep(i,n)for(int i=0;i<(n);i++) #define rep2(i,a,n)for(int i=(a);i<(n);i++) void next(const int n,int &x,int &y,int &d,const int dx[],const int dy[],vector>& ans){ int xx = x + dx[d]; int yy = y + dy[d]; if (xx < 0 || n <= xx) { d = (d + 1) % 4; xx = x + dx[d]; yy = y + dy[d]; } else if (yy < 0 || n <= yy) { d = (d + 1) % 4; xx = x + dx[d]; yy = y + dy[d]; } else if (ans[yy][xx] != 0) { d = (d + 1) % 4; xx = x + dx[d]; yy = y + dy[d]; } x = xx; y = yy; } int main() { cin.tie(nullptr);ios_base::sync_with_stdio(false); int n; cin>>n; vector> ans(n,vector(n,0)); int x = 0, y = 0, d = 1,idx = 1; const int dx[4] = { 0, 1, 0, -1 },dy[4] = { -1, 0, 1, 0 }; rep(i,n*n){ ans[y][x] = idx; next(n,x,y,d,dx,dy,ans); idx++; } rep(yy,n){ rep(xx,n){ cout<