#include #include using namespace std; #define REP(i, a, n) for(int i=a; i=a; i--) #define CH(a, l, r) (l<=a && a<=r) #define INF 1000000000 #define ll long long int dy[4] = { 0, 1, 0, -1 }; int dx[4] = { 1, 0, -1, 0 }; int main() { int N; cin >> N; int field[31][31]; REP(i, 0, 31) REP(j, 0, 31) field[i][j] = 0; int cnt = 1; int dir = 0; int y = 0, x = 0; bool flag = true; while (flag) { flag = false; while (CH(y, 0, N - 1) && CH(x, 0, N - 1)) { if (field[y][x] != 0) break; flag = true; field[y][x] = cnt; cnt++; y += dy[dir % 4]; x += dx[dir % 4]; } y -= dy[dir % 4]; x -= dx[dir % 4]; dir++; y += dy[dir % 4]; x += dx[dir % 4]; } REP(i, 0, N){ REP(j, 0, N) { printf("%03d ", field[i][j]); } printf("\n"); } return 0; }