#include #include #include #include #include using namespace std; int main() { int n; cin >> n; int n2 = n; vector > nn; nn.resize(n); for (int i = 0; i < n; i++) { nn[i].resize(n); } int j = 0, k = 0; int d = 1,cnt=0,point=1; for (int i = 1; i <= n2*n2; i++) { if (cnt == n-1) { point++; if (!(point % 2)) { point = 0; n--; } cnt = -1; d++; if (d == 5) d = 1; } ostringstream sout; sout << setfill('0') << setw(3) << i; nn[j][k] = sout.str(); if (d == 1) k++; else if (d == 2) j++; else if (d == 3) k--; else if (d == 4) j--; cnt++; } for (int i = 0; i < n2; i++) { for (int j = 0; j < n2; j++) { if (j)cout << " "; cout << nn[i][j]; } cout << endl; } return 0; }