Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. import sys
  2. sys.setrecursionlimit(10**6)
  3.  
  4.  
  5. n, m = map(int, input().split())
  6. g = [[] for i in range(n)]
  7. for i in range(m):
  8. a, b = map(int, input().split())
  9. if (b - 1 not in g[a - 1]):
  10. g[a - 1].append(b - 1)
  11. '''
  12. n = int(input())
  13. g = [list(map(int, input().split())) for i in range(n)]
  14. '''
  15. used = [0] * n
  16. cnt = 0
  17. E = []
  18.  
  19.  
  20. def dfs(v):
  21. used[v] = 1
  22. fl = False
  23. for i in g[v]:
  24. if (not used[i]):
  25. if (dfs(i)):
  26. fl = True
  27. else:
  28. if (used[i] == 1):
  29. fl = True
  30. used[v] = 2
  31. E.append(v + 1)
  32. return fl
  33.  
  34.  
  35. fl = False
  36. for i in range(n):
  37. if (not used[i]):
  38. if (dfs(i)):
  39. fl = True
  40. if (not fl):
  41. print("YES")
  42. for i in range(n - 1, -1, -1):
  43. print(E[i], end = ' ')
  44. else:
  45. print("NO")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement