Advertisement
Guest User

Untitled

a guest
Feb 25th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. class Graph(object):
  2. def __init__(self, n):
  3. self.n = n
  4. self.distances = [-1 for _ in xrange(n)]
  5. self.neighbors = {i:set() for i in xrange(n)}
  6.  
  7. def connect(self, x, y):
  8. self.neighbors[x].add(y)
  9. self.neighbors[y].add(x)
  10.  
  11. def find_all_distances(self, src):
  12. self.distances[src] = 0
  13. q = [src]
  14. while q:
  15. curr = q.pop(0)
  16. for neighbor in self.neighbors[curr]:
  17. if self.distances[neighbor] == -1:
  18. self.distances[neighbor] = self.distances[curr] + 6
  19. q.append(neighbor)
  20.  
  21. print ' '.join(str(d) for i, d in enumerate(self.distances) if i != src)
  22.  
  23.  
  24. t = input()
  25. for i in range(t):
  26. n,m = [int(x) for x in raw_input().split()]
  27. graph = Graph(n)
  28. for i in xrange(m):
  29. x,y = [int(x) for x in raw_input().split()]
  30. graph.connect(x-1,y-1)
  31. s = input()
  32. graph.find_all_distances(s-1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement