Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import deque
- def bfs(g, st):
- global used, n, m
- queue = deque([st])
- used[st[0]][st[1]] = True
- while len(queue) != 0:
- v = queue.popleft()
- p = []
- if v[0] < n - 1 and g[v[0] + 1][v[1]] != g[v[0]][v[1]]:
- p.append((v[0] + 1, v[1]))
- if v[0] > 0 and g[v[0] - 1][v[1]] != g[v[0]][v[1]]:
- p.append((v[0] - 1, v[1]))
- if v[1] < m - 1 and g[v[0]][v[1] + 1] != g[v[0]][v[1]]:
- p.append((v[0], v[1] + 1))
- if v[1] > 0 and g[v[0]][v[1] - 1] != g[v[0]][v[1]]:
- p.append((v[0], v[1] - 1))
- for u in p:
- if not used[u[0]][u[1]]:
- queue.append(u)
- used[u[0]][u[1]] = True
- return
- fin = open("chessboard.in", "r")
- fout = open("chessboard.out", "w")
- n, m = map(int, fin.readline().split())
- lst = []
- used = []
- for i in range(n):
- s = fin.readline().rstrip()
- lst.append([])
- used.append([False] * m)
- for j in s:
- lst[-1].append(j)
- ans = 0
- for i in range(n):
- for j in range(m):
- if not used[i][j]:
- bfs(lst, (i, j))
- ans += 1
- print(ans, file=fout)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement