#load "str.cma" ;; #use "lib/utils.ml" ;; let top n calories = let topn = List.filteri (fun i _ -> i < n) calories in let numcal = List.fold_left (+) 0 topn in Printf.printf "Top %d: %d\n" n numcal ;; let order_desc a b = if a < b then 1 else -1 in let contents = read_file "inputs/1.txt" in let calories = Str.split (Str.regexp "\n\n") contents |> List.map (String.split_on_char '\n') |> List.map (List.map (int_of_string)) |> List.map (List.fold_left (+) 0) |> List.sort order_desc in top 1 calories; top 3 calories