Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- sys.setrecursionlimit(10**6)
- n, m = map(int, input().split())
- g = [[] for i in range(n)]
- for i in range(m):
- a, b = map(int, input().split())
- if (b - 1 not in g[a - 1]):
- g[a - 1].append(b - 1)
- '''
- n = int(input())
- g = [list(map(int, input().split())) for i in range(n)]
- '''
- used = [0] * n
- cnt = 0
- E = []
- def dfs(v):
- used[v] = 1
- fl = False
- for i in g[v]:
- if (not used[i]):
- if (dfs(i)):
- fl = True
- else:
- if (used[i] == 1):
- fl = True
- used[v] = 2
- E.append(v + 1)
- return fl
- fl = False
- for i in range(n):
- if (not used[i]):
- if (dfs(i)):
- fl = True
- if (not fl):
- print("YES")
- for i in range(n - 1, -1, -1):
- print(E[i], end = ' ')
- else:
- print("NO")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement