#!/usr/bin/env ruby STORE = 150 jugs = File.readlines("day17.input").map(&:to_i) numsols = 0 (1..jugs.length).each do |i| numsols += jugs.combination(i).map(&:sum).count(STORE) end puts "Part 1: #{numsols}" minjugs = jugs.length + 1 (1..jugs.length).each do |i| min = jugs.combination(i).select { |s| s.sum == STORE }.map(&:length).min minjugs = min if min && min < minjugs end numsols = jugs.combination(minjugs).map(&:sum).count(STORE) puts "Part 2: #{numsols}"