Я на третьем курсе похожую задачу делал на практике, только надо было самый короткий путь найти чтобы доставить
https://ru.wikipedia.org/wiki/Задача_о_самом_длинном_пути Задача решается за линейное время на ориентированных ациклических графах (ссответствует условию задачи)