Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let e18 =
- let input = System.IO.File.ReadAllLines(@"C:\Users\Peter\source\repos\ProjectEuler\ProjectEuler\pyramid.txt")
- let parsed =
- input
- |> Array.map (fun str ->
- str.Split([|' '|])
- |> Array.map int
- |> List.ofArray)
- |> List.ofArray
- |> List.rev
- let rec getMaxSum (pyramid: int list list) =
- match pyramid with
- | l when List.length l = 1 -> l.Head.Head
- | baseOfPyramid::secondLayer::rest ->
- let possiblePairs = (List.windowed 2 baseOfPyramid)
- getMaxSum
- (List.append
- [((List.map2
- (fun block pair -> block + (List.max pair))
- secondLayer
- possiblePairs))]
- rest)
- | _ -> 0
- getMaxSum parsed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement