Advertisement
bl00dt3ars

05. Dots

Jun 8th, 2021
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.05 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().split()) for i in range(rows)]
  23. columns = len(matrix[0])
  24. largest_len_of_connected_dots = 0
  25.  
  26. for r in range(rows):
  27.     for c in range(columns):
  28.         if matrix[r][c] == ".":
  29.             visited_positions = []
  30.             row = r
  31.             column = c
  32.             connected_dots = 0
  33.             while True:
  34.                 if matrix[row][column] == "-":
  35.                     break
  36.                 elif check_right(matrix, row, column):
  37.                     visited_positions.append([row, column])
  38.                     column += 1
  39.                 elif check_left(matrix, row, column):
  40.                     visited_positions.append([row, column])
  41.                     column -= 1
  42.                 elif check_up(matrix, row, column):
  43.                     visited_positions.append([row, column])
  44.                     row -= 1
  45.                 elif check_down(matrix, row, column):
  46.                     visited_positions.append([row, column])
  47.                     row += 1
  48.                 else:
  49.                     matrix[row][column] = "-"
  50.                     visited_positions = []
  51.                     connected_dots += 1
  52.                     row = r
  53.                     column = c
  54.                     if connected_dots > largest_len_of_connected_dots:
  55.                         largest_len_of_connected_dots = connected_dots
  56.  
  57. print(largest_len_of_connected_dots)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement