Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def dfs(k, edges, visited, a):
- visited[k] = 1
- for e in edges[k]:
- if visited[e] == 0:
- dfs(e, edges, visited, a)
- elif visited[e] == 1:
- raise Exception
- a.append(k + 1)
- visited[k] = 2
- N, M = map(int, input().split())
- edges = [list() for _ in range(N)]
- visited = [0 for _ in range(N)]
- for _ in range(M):
- x, y = map(int, input().split())
- edges[x - 1].append(y - 1)
- a = []
- loop = False
- for k in range(N):
- try:
- if not visited[k]:
- dfs(k, edges, visited, a)
- except Exception:
- loop = True
- print(-1)
- break
- if not loop:
- print(*a[::-1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement