/* -*- coding: utf-8 -*- * * 401.cc: No.401 数字の渦巻き - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 30; const int dxs[] = {1, 0, -1, 0}, dys[] = {0, 1, 0, -1}; /* typedef */ /* global variables */ int as[MAX_N][MAX_N]; /* subroutines */ /* main */ int main() { int n; cin >> n; int nn = n * n; int x = -1, y = 0, di = 0; for (int i = 1; i <= nn; i++) { int x0 = x + dxs[di], y0 = y + dys[di]; if (x0 < 0 || x0 >= n || y0 < 0 || y0 >= n || as[y0][x0]) { di = (di + 1) & 3; x0 = x + dxs[di], y0 = y + dys[di]; } x = x0, y = y0; as[y][x] = i; } for (int y = 0; y < n; y++) { for (int x = 0; x < n; x++) { if (x) putchar(' '); printf("%03d", as[y][x]); } putchar('\n'); } return 0; }