Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. edges = []
  2. queue = []
  3. l = []
  4. num = int(input())
  5. output = []
  6. output1 = ""
  7. Inbound_degree = [0 for _ in range(num)]
  8. n = 10
  9. while n != "":
  10. try:
  11. n = input()
  12. if n != "":
  13. n = list(map(int, n.split()))
  14. edges.append(n)
  15. Inbound_degree[n[1]] += 1
  16. except EOFError:
  17. break
  18. for ind, i in enumerate(Inbound_degree):
  19. if i == 0:
  20. queue.append(ind)
  21. else:
  22. l.append(ind)
  23.  
  24. while len(queue) != 0:
  25. output1 += " ".join(map(str, Inbound_degree)) + "\n" + " ".join(map(str, queue)) + "\n"
  26. for i in edges:
  27. if i[0] == queue[0]:
  28. Inbound_degree[i[1]] -= 1
  29.  
  30. for i in l:
  31. if Inbound_degree[i] == 0:
  32. queue.append(i)
  33. l.remove(i)
  34.  
  35. el = queue.pop(0)
  36. output = [el] + output
  37.  
  38. bul = False
  39. for i in Inbound_degree:
  40. if i != 0 and len(queue) == 0:
  41. bul = True
  42. break
  43.  
  44. print(output1[:len(output1) - 1])
  45.  
  46. if bul:
  47. print("None")
  48. else:
  49. print(*output)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement