#include typedef long long ll; using namespace std; int INF = 1e9; int MOD = 1000000007; int num[30][30]; main(){ int N; cin >> N; int dir = 0;//→↓←↑ int dx[4] = {1,0,-1,0},dy[4] = {0,1,0,-1}; int x = 0,y = 0; for(int i = 1;i <= N*N;i++){ num[y][x] = i; //端か一歩進んだ先が書き込み済みのとき if( (dir == 0 && x == N-1) || (dir == 1 && y == N-1) || (dir == 2 && x == 0) || (dir == 3 && y == 0) || num[y + dy[dir]][x + dx[dir]]) dir = (dir + 1) % 4; x += dx[dir]; y += dy[dir]; } for(int i = 0;i < N;i++){ for(int j = 0;j < N;j++)printf("%03d%c",num[i][j],j==N-1?'\n':' '); } }