#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void move(int *Map, int n, int a, int b) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (true) { int O[8] = {100, 100, 100, 100, 100, 100, 100, 100}; if (0 <= i + a && i + a < n && 0 <= j + b && j + b < n && *(Map + n*i + j + n*a + b) >= 0) O[0] = *(Map + n*i + j + n*a + b) + 1; if (0 <= i + a && i + a < n && 0 <= j - b && j - b < n && *(Map + n*i + j + n*a - b) >= 0) O[1] = *(Map + n*i + j + n*a - b) + 1; if (0 <= i - a && i - a < n && 0 <= j + b && j + b < n && *(Map + n*i + j - n*a + b) >= 0) O[2] = *(Map + n*i + j - n*a + b) + 1; if (0 <= i - a && i - a < n && 0 <= j - b && j - b < n && *(Map + n*i + j - n*a - b) >= 0) O[3] = *(Map + n*i + j - n*a - b) + 1; if (0 <= i + b && i + b < n && 0 <= j + a && j + a < n && *(Map + n*i + j + n*b + a) >= 0) O[4] = *(Map + n*i + j + n*b + a) + 1; if (0 <= i + b && i + b < n && 0 <= j - a && j - a < n && *(Map + n*i + j + n*b - a) >= 0) O[5] = *(Map + n*i + j + n*b - a) + 1; if (0 <= i - b && i - b < n && 0 <= j + a && j + a < n && *(Map + n*i + j - n*b + a) >= 0) O[6] = *(Map + n*i + j - n*b + a) + 1; if (0 <= i - b && i - b < n && 0 <= j - a && j - a < n && *(Map + n*i + j - n*b - a) >= 0) O[7] = *(Map + n*i + j - n*b - a) + 1; if(*(Map + n*i + j) == -1) { *(Map + n*i + j) = min(min(min(min(min(min(min(O[0], O[1]), O[2]), O[3]), O[4]), O[5]), O[6]), O[7]); } else *(Map + n*i + j) = min(min(min(min(min(min(min(min(O[0], O[1]), O[2]), O[3]), O[4]), O[5]), O[6]), O[7]), *(Map + n*i + j)); if (*(Map + n*i + j) == 100) *(Map + n*i + j) = -1; } } } } int main(){ int n; cin >> n; int *Map = (int *) malloc(sizeof(int) * n * n); for (int a = 1; a < n; a++) { for (int b = 1; b < n; b++) { for(int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { *(Map + n*i + j) = -1; } } *Map = 0; for (int k = 0; k < 3*n; k++) { move(Map, n, a, b); } cout << *(Map + n*n - 1) << ' '; } cout << '\n'; } return 0; }