Advertisement
Manioc

Churras

Nov 15th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.83 KB | None | 0 0
  1. from collections import *
  2.  
  3. def bfs(no):
  4.     q = []
  5.     q.append(no)
  6.     vis[no] = True
  7.     dist[no] = 0
  8.     while not len(q) == 0:
  9.         top = q.pop()
  10.         for vizinho in grafo[top]:
  11.             if not vis[vizinho]: q.append(vizinho)
  12.             vis[vizinho] = True
  13.             dist[vizinho] = min(dist[vizinho],dist[top] + 1)
  14.  
  15.  
  16. cases, num = map(int, raw_input().split())
  17. grafo = defaultdict(list)
  18. pos = []
  19.  
  20. for i in range(cases):
  21.     nome, amigo = raw_input().split()
  22.     pos.append(nome)
  23.     pos.append(amigo)
  24.  
  25.     grafo[nome] += [amigo]
  26.     grafo[amigo] += [nome]
  27.  
  28. vis = {i:False for i in pos}
  29. dist = {i:100000 for i in pos}
  30.  
  31. pos = set(pos)
  32. bfs("Rerisson")
  33.  
  34. new = ""
  35. cont = 0
  36. for i in sorted(dist):
  37.     if 1 <= dist[i] <= num:
  38.         cont += 1
  39.         new += i + "\n"
  40.  
  41. print cont
  42. print new,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement