Cod sursa(job #2661617)
Utilizator | Data | 22 octombrie 2020 13:27:03 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 0 |
Compilator | py | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
(n,m) = (int(x) for x in input().split())
graf = {}
for i in range(m):
(a, b) = (int(x) for x in input().split())
if a not in graf:
graf[a] = set()
graf[a].add(b)
s = []
viz = {x for x in range(1,n+1)}
def top(x):
viz.remove(x)
if x not in graf:
s.append(x)
else:
while graf[x] != set():
a = graf[x].pop()
top(a)
s.append(x)
while viz != set():
for x in viz:
break
top(x)
print(*s[::-1],sep=" ")