トポロジカルソートして, 上位の頂点から順に最長パスの長さを更新していく.

計算量は \(O(N+M)\) である.