49 lines
1.7 KiB
Plaintext
49 lines
1.7 KiB
Plaintext
#define min(a, b) iif((a) < (b), (a), (b))
|
|
|
|
Dim As Single totalPeso, totalVolumen
|
|
Dim As Integer maxPanacea, maxIchor, maxGold, maxValor
|
|
Dim As Integer i, j ,k
|
|
Dim As Integer n(2)
|
|
|
|
Type Bounty
|
|
articulo As String*7
|
|
valor As Integer
|
|
peso As Single
|
|
volumen As Single
|
|
End Type
|
|
|
|
Dim item(1 To 5) As Bounty => { _
|
|
("panacea", 3000, 0.3, 0.025), ("ichor", 1800, 0.2, 0.015), _
|
|
("gold", 2500, 2.0, 0.002), ("sack", 0, 25.0, 0.25 )}
|
|
|
|
maxPanacea = min(item(4).peso/item(1).peso, item(4).volumen/item(1).volumen)
|
|
maxIchor = min(item(4).peso/item(2).peso, item(4).volumen/item(2).volumen)
|
|
maxGold = min(item(4).peso/item(3).peso, item(4).volumen/item(3).volumen)
|
|
|
|
For i = 0 To maxPanacea
|
|
For j = 0 To maxIchor
|
|
For k = 0 To maxGold
|
|
item(0).valor = k*item(3).valor + j*item(2).valor + i*item(1).valor
|
|
item(0).peso = k*item(3).peso + j*item(2).peso + i*item(1).peso
|
|
item(0).volumen = k*item(3).volumen + j*item(2).volumen + i*item(1).volumen
|
|
If item(0).peso > item(4).peso Or item(0).volumen > item(4).volumen Then
|
|
Continue For
|
|
End If
|
|
If item(0).valor > maxValor Then
|
|
maxValor = item(0).valor
|
|
totalPeso = item(0).peso
|
|
totalVolumen = item(0).volumen
|
|
n(0) = i: n(1) = j: n(2) = k
|
|
End If
|
|
Next k
|
|
Next j
|
|
Next i
|
|
|
|
Print "Maximum valor achievable is "; Str(maxValor)
|
|
Print "This is achieved by carrying "; Str(n(0));
|
|
Print " panacea, "; Str(n(1)); " ichor and "; Str(n(2)); " gold items."
|
|
Print "The peso to carry is "; Str(totalPeso);
|
|
Print " and the volume used is "; Str(totalVolumen)
|
|
|
|
Sleep
|