https://www.geeksforgeeks.org/find-longest-path-directed-acyclic-graph/