Miscellany
public text v1 · immutablereachable = []
for i in range(n):
reachable.append([False] * n)
for u in range(n):
reachable[u][u] = True
for v in topological_sort(u):
reachable[u][v] = True
for u in range(n):
for v in range(n):
if not reachable[u][v] and not reachable[v][u]:
return False
return True