Advertisement
bl00dt3ars

Test Kate

Jun 8th, 2021
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.38 KB | None | 0 0
  1. def check_right(matrix, row, column):
  2.     if column < columns - 1 and matrix[row][column + 1] == " " and not [row, column + 1] in visited_positions:
  3.         return True
  4.  
  5.  
  6. def check_left(matrix, row, column):
  7.     if column > 0 and matrix[row][column - 1] == " " and [row, column - 1] not in visited_positions:
  8.         return True
  9.  
  10.  
  11. def check_up(matrix, row, column):
  12.     if row > 0 and matrix[row - 1][column] == " " and [row - 1, column] not in visited_positions:
  13.         return True
  14.  
  15.  
  16. def check_down(matrix, row, column):
  17.     if row < rows - 1 and matrix[row + 1][column] == " " and [row + 1, column] not in visited_positions:
  18.         return True
  19.  
  20.  
  21. rows = int(input())
  22. matrix = [list(input()) for i in range(rows)]
  23. columns = len(matrix[0])
  24. largest_len_of_connected_dots = 0
  25. starting_position = [[r, c] for r in range(rows) for c in range(columns) if "k" == matrix[r][c]]
  26.  
  27. for r in range(rows):
  28.     for c in range(columns):
  29.         if matrix[starting_position[0][0]][starting_position[0][1]] == "k":
  30.             visited_positions = []
  31.             row = starting_position[0][0]
  32.             column = starting_position[0][1]
  33.             connected_dots = 0
  34.             while True:
  35.                 if matrix[row][column] == "#":
  36.                     break
  37.                 elif check_right(matrix, row, column):
  38.                     visited_positions.append([row, column])
  39.                     column += 1
  40.                 elif check_left(matrix, row, column):
  41.                     visited_positions.append([row, column])
  42.                     column -= 1
  43.                 elif check_up(matrix, row, column):
  44.                     visited_positions.append([row, column])
  45.                     row -= 1
  46.                 elif check_down(matrix, row, column):
  47.                     visited_positions.append([row, column])
  48.                     row += 1
  49.                 else:
  50.                     if row == rows - 1 or row == 0 or column == 0 or column == columns - 1:
  51.                         pass
  52.                     matrix[row][column] = "#"
  53.                     connected_dots += 1
  54.                     row = starting_position[0][0]
  55.                     column = starting_position[0][1]
  56.                     visited_positions = []
  57.                     if connected_dots < largest_len_of_connected_dots:
  58.                         largest_len_of_connected_dots = connected_dots
  59.  
  60. print(largest_len_of_connected_dots)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement