fork(1) download
  1. let rec combinations n l =
  2. match n, l with
  3. | 0, _ -> [[]]
  4. | _, [] -> []
  5. | k, (x::xs) -> List.map ((@) [x]) (combinations (k-1) xs) @ combinations k xs
  6.  
  7. let solve n (lst : int list) =
  8. seq { for e in 1..n do yield! combinations e lst }
  9. |> Seq.groupBy List.sum
  10.  
  11. solve 8 [1..16]
  12. |> Seq.last
  13. |> printfn "%A"
Success #stdin #stdout 0.38s 31264KB
stdin
Standard input is empty
stdout
(100, seq [[9; 10; 11; 12; 13; 14; 15; 16]])