Bank = Data.define(:batteries) do
def joltage(n)
battery = batteries[0..-n].max
index = batteries.index(battery)
if n > 1
battery.to_s + Bank.new(batteries[index+1..]).joltage(n-1)
else
battery.to_s
end
end
end
banks = DATA.read.lines(chomp: true)
.map { it.chars.map(&:to_i) }
.map { Bank.new(it) }
pp banks.map {|bank|
bank.joltage(12).to_i
}.sum
__END__