Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. def bfs():
  2. d = [-1] * len(graph)
  3. for elem in begin:
  4. d[elem] = 0
  5. queue = begin
  6. qstart = 0
  7. while qstart < len(queue):
  8. u = queue[qstart]
  9. qstart += 1
  10. for v in graph[u]:
  11. if d[v] == -1:
  12. d[v] = d[u] + 1
  13. queue.append(v)
  14. return d
  15.  
  16.  
  17. fin = open("table.in", "r")
  18. fout = open("table.out", "w")
  19. n, m = map(int, fin.readline().split())
  20. table = [[0] for i in range(n * m)]
  21. graph = [[] for i in range(n * m)]
  22. for i in range(n * m):
  23. go = []
  24. if i % m != 0:
  25. go.append(i - 1)
  26. if i > m - 1:
  27. go.append(i - m)
  28. if i % m != m - 1:
  29. go.append(i + 1)
  30. if i < n * m - m:
  31. go.append(i + m)
  32. for e in go:
  33. graph[i].append(e)
  34. begin = []
  35. for i in range(n):
  36. s = list(map(int, fin.readline().split()))
  37. for j in range(m):
  38. table[i * m + j] = s[j]
  39. if s[j] == 1:
  40. begin.append(i * m + j)
  41. lokoroko = bfs()
  42. for i in range(n):
  43. print(*lokoroko[i * m:(i + 1) * m], file=fout)
  44. fin.close()
  45. fout.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement