Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def check_right(matrix, row, column):
- if column < columns - 1 and matrix[row][column + 1] == " " and not [row, column + 1] in visited_positions:
- return True
- def check_left(matrix, row, column):
- if column > 0 and matrix[row][column - 1] == " " and [row, column - 1] not in visited_positions:
- return True
- def check_up(matrix, row, column):
- if row > 0 and matrix[row - 1][column] == " " and [row - 1, column] not in visited_positions:
- return True
- def check_down(matrix, row, column):
- if row < rows - 1 and matrix[row + 1][column] == " " and [row + 1, column] not in visited_positions:
- return True
- rows = int(input())
- matrix = [list(input()) for i in range(rows)]
- columns = len(matrix[0])
- largest_len_of_connected_dots = 0
- starting_position = [[r, c] for r in range(rows) for c in range(columns) if "k" == matrix[r][c]]
- for r in range(rows):
- for c in range(columns):
- if matrix[starting_position[0][0]][starting_position[0][1]] == "k":
- visited_positions = []
- row = starting_position[0][0]
- column = starting_position[0][1]
- connected_dots = 0
- while True:
- if matrix[row][column] == "#":
- break
- elif check_right(matrix, row, column):
- visited_positions.append([row, column])
- column += 1
- elif check_left(matrix, row, column):
- visited_positions.append([row, column])
- column -= 1
- elif check_up(matrix, row, column):
- visited_positions.append([row, column])
- row -= 1
- elif check_down(matrix, row, column):
- visited_positions.append([row, column])
- row += 1
- else:
- if row == rows - 1 or row == 0 or column == 0 or column == columns - 1:
- pass
- matrix[row][column] = "#"
- connected_dots += 1
- row = starting_position[0][0]
- column = starting_position[0][1]
- visited_positions = []
- if connected_dots < largest_len_of_connected_dots:
- largest_len_of_connected_dots = connected_dots
- print(largest_len_of_connected_dots)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement