Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. def dfs(k, edges, visited, a):
  2. visited[k] = 1
  3. for e in edges[k]:
  4. if visited[e] == 0:
  5. dfs(e, edges, visited, a)
  6. elif visited[e] == 1:
  7. raise Exception
  8. a.append(k + 1)
  9. visited[k] = 2
  10.  
  11.  
  12. N, M = map(int, input().split())
  13. edges = [list() for _ in range(N)]
  14. visited = [0 for _ in range(N)]
  15. for _ in range(M):
  16. x, y = map(int, input().split())
  17. edges[x - 1].append(y - 1)
  18. a = []
  19. loop = False
  20. for k in range(N):
  21. try:
  22. if not visited[k]:
  23. dfs(k, edges, visited, a)
  24. except Exception:
  25. loop = True
  26. print(-1)
  27. break
  28. if not loop:
  29. print(*a[::-1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement