About the following algorithm:
reach(Vertex s, Vertex t): if s = t return TRUE else for v in Adj(s) do if reach(v,t) return TRUE return FALSE
Why can we say that its runtime on a directed acyclic graph is $O(n!)$?
I can see why there are $n!$ different paths in the graph, is it because in each of those $n!$ paths, the loop will run at most $n$ times?