Guest User

Untitled

a guest
Jan 16th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. let path _ =
  2. let siz = size graf in
  3. let values = Array.make siz (-1) in
  4. let rec dfs w =
  5. if values.(w) >= 0 then values.(w) else
  6. let sasiedzi = neighbours graf w in
  7. let f acc sasiad =
  8. if sasiad < w then max (dfs sasiad) acc
  9. else acc
  10. in
  11. let fold_result = List.fold_left f 0 sasiedzi + 1 in
  12. values.(w) <- fold_result;
  13. fold_result
  14. in
  15. let answer = ref 0 in
  16. for i = siz - 1 downto 0 do
  17. answer := max !answer (dfs i - 1);
  18. done;
  19. !answer
Add Comment
Please, Sign In to add comment