#!/bin/python3 import sys def set_element(board, position_x, position_y, move_x, move_y, tmp_y, tmp_x): if 0 <= tmp_y < len(board) and 0 <= tmp_x < len(board): if board[tmp_y][tmp_x] == -1 or board[tmp_y][tmp_x] > board[position_y][position_x] + 1: board[tmp_y][tmp_x] = board[position_y][position_x] + 1 return True return False # reccur_board(board, tmp_x, tmp_y, move_x, move_y) def reccur_board(board, position_x, position_y, move_x, move_y): positions = [(position_x, position_y)] while len(positions) != 0: tmp_x, tmp_y = positions.pop(0) if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y + move_y, tmp_x + move_x): positions.append((tmp_x + move_x, tmp_y + move_y)) if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y - move_y, tmp_x - move_x): positions.append((tmp_x - move_x, tmp_y - move_y)) if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y - move_y, tmp_x + move_x): positions.append((tmp_x + move_x, tmp_y - move_y)) if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y + move_y, tmp_x - move_x): positions.append((tmp_x - move_x, tmp_y + move_y)) if move_x != move_y: if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y + move_x, tmp_x + move_y): positions.append((tmp_x + move_y, tmp_y + move_x)) if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y - move_x, tmp_x - move_y): positions.append((tmp_x - move_y, tmp_y - move_x)) if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y - move_x, tmp_x + move_y): positions.append((tmp_x + move_y, tmp_y - move_x)) if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y + move_x, tmp_x - move_y): positions.append((tmp_x - move_y, tmp_y + move_x)) n = int(input().strip()) result = [[-2 for x in range(1, n)] for y in range(1, n)] for move_y in range(1, n): for move_x in range(1, n): board = [[-1 for x in range(0, n)] for y in range(0, n)] board[0][0] = 0 if result[move_y - 1][move_x - 1] == -2 and result[move_x - 1][move_y - 1] == -2: reccur_board(board, 0, 0, move_x, move_y) result[move_y - 1][move_x - 1] = str(board[n - 1][n - 1]) result[move_x - 1][move_y - 1] = str(board[n - 1][n - 1]) for line in result: print(' '.join([str(e) for e in line]))