Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import *
- def bfs(no):
- q = []
- q.append(no)
- vis[no] = True
- dist[no] = 0
- while not len(q) == 0:
- top = q.pop()
- for vizinho in grafo[top]:
- if not vis[vizinho]: q.append(vizinho)
- vis[vizinho] = True
- dist[vizinho] = min(dist[vizinho],dist[top] + 1)
- cases, num = map(int, raw_input().split())
- grafo = defaultdict(list)
- pos = []
- for i in range(cases):
- nome, amigo = raw_input().split()
- pos.append(nome)
- pos.append(amigo)
- grafo[nome] += [amigo]
- grafo[amigo] += [nome]
- vis = {i:False for i in pos}
- dist = {i:100000 for i in pos}
- pos = set(pos)
- bfs("Rerisson")
- new = ""
- cont = 0
- for i in sorted(dist):
- if 1 <= dist[i] <= num:
- cont += 1
- new += i + "\n"
- print cont
- print new,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement