Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- rows = int(input())
- cols = int(input())
- matrix = [list(input()) for _ in range(rows)]
- visited = [[False] * cols for _ in range(rows)]
- def dfs(parent, row, col, matrix, visited):
- if row < 0 or col < 0 or row >= len(matrix) or col >= len(matrix[0]):
- return
- if visited[row][col]:
- return
- if matrix[row][col] != parent:
- return
- visited[row][col] = True
- dfs(parent, row - 1, col, matrix, visited)
- dfs(parent, row + 1, col, matrix, visited)
- dfs(parent, row, col + 1, matrix, visited)
- dfs(parent, row, col - 1, matrix, visited)
- area = {}
- total_areas = 0
- for r in range(rows):
- for c in range(cols):
- if visited[r][c]:
- continue
- key = matrix[r][c]
- dfs(key, r, c, matrix, visited)
- if key not in area:
- area[key] = 0
- area[key] += 1
- total_areas += 1
- print(f'Areas: {total_areas}')
- for letter, count in sorted(area.items()):
- print(f"Letter '{letter}' -> {count}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement