buckets = DATA.read.split("\n").map(&:to_i) puts (1..buckets.size).flat_map {|i| buckets.combination(i).select {|p| p.inject(:+) == 150 } }.group_by(&:size).sort_by(&:first).first.last.size __END__