#include #include #include #include #include #include using namespace std; const vector dx = {1, 0, -1, 0}; const vector dy = {0, 1, 0, -1}; int main() { int n; cin >> n; vector> a(n, vector(n, -1)); int nx = 0; int ny = 0; int dir = 0; int x, y; int z = 1; while (z <= n*n) { while (0 <= nx && nx < n && 0 <= ny && ny < n && a[ny][nx] == -1) { x = nx; y = ny; a[y][x] = z; nx = (x + dx[dir]); ny = (y + dy[dir]); z++; } dir = (dir + 1) % 4; nx = (x + dx[dir]); ny = (y + dy[dir]); } for (auto aa : a) { for (auto aaa : aa) { printf("%03d ", aaa); } printf("\n"); } return 0; }