37 lines
1.5 KiB
Lua
37 lines
1.5 KiB
Lua
items = { ["panaea"] = { ["value"] = 3000, ["weight"] = 0.3, ["volume"] = 0.025 },
|
|
["ichor"] = { ["value"] = 1800, ["weight"] = 0.2, ["volume"] = 0.015 },
|
|
["gold"] = { ["value"] = 2500, ["weight"] = 2.0, ["volume"] = 0.002 }
|
|
}
|
|
|
|
max_weight = 25
|
|
max_volume = 0.25
|
|
|
|
max_num_items = {}
|
|
for i in pairs( items ) do
|
|
max_num_items[i] = math.floor( math.min( max_weight / items[i].weight, max_volume / items[i].volume ) )
|
|
end
|
|
|
|
best = { ["value"] = 0.0, ["weight"] = 0.0, ["volume"] = 0.0 }
|
|
best_amounts = {}
|
|
|
|
for i = 1, max_num_items["panaea"] do
|
|
for j = 1, max_num_items["ichor"] do
|
|
for k = 1, max_num_items["gold"] do
|
|
current = { ["value"] = i*items["panaea"]["value"] + j*items["ichor"]["value"] + k*items["gold"]["value"],
|
|
["weight"] = i*items["panaea"]["weight"] + j*items["ichor"]["weight"] + k*items["gold"]["weight"],
|
|
["volume"] = i*items["panaea"]["volume"] + j*items["ichor"]["volume"] + k*items["gold"]["volume"]
|
|
}
|
|
|
|
if current.value > best.value and current.weight <= max_weight and current.volume <= max_volume then
|
|
best = { ["value"] = current.value, ["weight"] = current.weight, ["volume"] = current.volume }
|
|
best_amounts = { ["panaea"] = i, ["ichor"] = j, ["gold"] = k }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
print( "Maximum value:", best.value )
|
|
for k, v in pairs( best_amounts ) do
|
|
print( k, v )
|
|
end
|