Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let path _ =
- let siz = size graf in
- let values = Array.make siz (-1) in
- let rec dfs w =
- if values.(w) >= 0 then values.(w) else
- let sasiedzi = neighbours graf w in
- let f acc sasiad =
- if sasiad < w then max (dfs sasiad) acc
- else acc
- in
- let fold_result = List.fold_left f 0 sasiedzi + 1 in
- values.(w) <- fold_result;
- fold_result
- in
- let answer = ref 0 in
- for i = siz - 1 downto 0 do
- answer := max !answer (dfs i - 1);
- done;
- !answer
Add Comment
Please, Sign In to add comment