Skip to content

Instantly share code, notes, and snippets.

@inspirit941
Created July 13, 2020 13:11
Show Gist options
  • Save inspirit941/2619b203291aa2c087e97af0b562beb6 to your computer and use it in GitHub Desktop.
Save inspirit941/2619b203291aa2c087e97af0b562beb6 to your computer and use it in GitHub Desktop.
import sys
from collections import defaultdict, deque
n = int(sys.stdin.readline())
a, b = map(int, sys.stdin.readline().split())
m = int(sys.stdin.readline())
connected = defaultdict(set)
for _ in range(m):
parent, child = map(int, sys.stdin.readline().split())
connected[parent].add(child)
connected[child].add(parent)
def bfs(start, connected, end):
visited = set()
queue = deque()
queue.append((0, start))
while queue:
cnt, p = queue.popleft()
visited.add(p)
if p == end:
return cnt
for nxt in connected[p]:
if nxt not in visited:
visited.add(nxt)
queue.append((cnt+1, nxt))
return -1
print(bfs(a, connected, b))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment