21 lines
605 B
Ruby
21 lines
605 B
Ruby
items = [ [:beef , 3.8, 36],
|
|
[:pork , 5.4, 43],
|
|
[:ham , 3.6, 90],
|
|
[:greaves, 2.4, 45],
|
|
[:flitch , 4.0, 30],
|
|
[:brawn , 2.5, 56],
|
|
[:welt , 3.7, 67],
|
|
[:salami , 3.0, 95],
|
|
[:sausage, 5.9, 98] ].sort_by{|item, weight, price| -price / weight}
|
|
maxW, value = 15.0, 0
|
|
items.each do |item, weight, price|
|
|
if (maxW -= weight) > 0
|
|
puts "Take all #{item}"
|
|
value += price
|
|
else
|
|
puts "Take %gkg of %s" % [t=weight+maxW, item], "",
|
|
"Total value of swag is %g" % (value+(price/weight)*t)
|
|
break
|
|
end
|
|
end
|