Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def bfs():
- d = [-1] * len(graph)
- for elem in begin:
- d[elem] = 0
- queue = begin
- qstart = 0
- while qstart < len(queue):
- u = queue[qstart]
- qstart += 1
- for v in graph[u]:
- if d[v] == -1:
- d[v] = d[u] + 1
- queue.append(v)
- return d
- fin = open("table.in", "r")
- fout = open("table.out", "w")
- n, m = map(int, fin.readline().split())
- table = [[0] for i in range(n * m)]
- graph = [[] for i in range(n * m)]
- for i in range(n * m):
- go = []
- if i % m != 0:
- go.append(i - 1)
- if i > m - 1:
- go.append(i - m)
- if i % m != m - 1:
- go.append(i + 1)
- if i < n * m - m:
- go.append(i + m)
- for e in go:
- graph[i].append(e)
- begin = []
- for i in range(n):
- s = list(map(int, fin.readline().split()))
- for j in range(m):
- table[i * m + j] = s[j]
- if s[j] == 1:
- begin.append(i * m + j)
- lokoroko = bfs()
- for i in range(n):
- print(*lokoroko[i * m:(i + 1) * m], file=fout)
- fin.close()
- fout.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement