Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # put your python code here
- import sys
- import queue
- sys.setrecursionlimit(10000)
- def breadthFirstSearch(V, Q:queue.Queue):
- vertex = Q.get()
- vertex[2] += 1
- for i in range(len(vertex[1])):
- child = V[vertex[1][i]]
- if child[0] == 0:
- child[0] = 1
- child[2] = vertex[2]
- Q.put(child)
- if not Q.empty():
- breadthFirstSearch(V, Q)
- reader = sys.stdin
- vertexCount, edgesCount = tuple(map(int, next(reader).strip().split()))
- V = []
- for i in range(vertexCount):
- V.append([0, [], -1])
- for i in range(edgesCount):
- v1, v2 = tuple(map(int, next(reader).strip().split()))
- V[v1][1].append(v2)
- V[v2][1].append(v1)
- Q = queue.Queue()
- Q.put(V[0])
- V[0][0] = 1
- breadthFirstSearch(V, Q)
- for i in range(len(V)):
- print(V[i][2], end=' ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement