langs a-z
This commit is contained in:
parent
db842d013d
commit
d066446780
11389 changed files with 98361 additions and 1020 deletions
|
|
@ -0,0 +1,54 @@
|
|||
Program Knapsack(output);
|
||||
|
||||
uses
|
||||
math;
|
||||
|
||||
type
|
||||
bounty = record
|
||||
value: longint;
|
||||
weight, volume: real;
|
||||
end;
|
||||
|
||||
const
|
||||
panacea: bounty = (value:3000; weight: 0.3; volume: 0.025);
|
||||
ichor: bounty = (value:1800; weight: 0.2; volume: 0.015);
|
||||
gold: bounty = (value:2500; weight: 2.0; volume: 0.002);
|
||||
sack: bounty = (value: 0; weight: 25.0; volume: 0.25);
|
||||
|
||||
var
|
||||
totalweight, totalvolume: real;
|
||||
maxpanacea, maxichor, maxgold: longint;
|
||||
maxvalue: longint = 0;
|
||||
n: array [1..3] of longint;
|
||||
current: bounty;
|
||||
i, j, k: longint;
|
||||
|
||||
begin
|
||||
maxpanacea := round(min(sack.weight / panacea.weight, sack.volume / panacea.volume));
|
||||
maxichor := round(min(sack.weight / ichor.weight, sack.volume / ichor.volume));
|
||||
maxgold := round(min(sack.weight / gold.weight, sack.volume / gold.volume));
|
||||
|
||||
for i := 0 to maxpanacea do
|
||||
for j := 0 to maxichor do
|
||||
for k := 0 to maxgold do
|
||||
begin
|
||||
current.value := k * gold.value + j * ichor.value + i * panacea.value;
|
||||
current.weight := k * gold.weight + j * ichor.weight + i * panacea.weight;
|
||||
current.volume := k * gold.volume + j * ichor.volume + i * panacea.volume;
|
||||
if (current.value > maxvalue) and
|
||||
(current.weight <= sack.weight) and
|
||||
(current.volume <= sack.volume) then
|
||||
begin
|
||||
maxvalue := current.value;
|
||||
totalweight := current.weight;
|
||||
totalvolume := current.volume;
|
||||
n[1] := i;
|
||||
n[2] := j;
|
||||
n[3] := k;
|
||||
end;
|
||||
end;
|
||||
|
||||
writeln ('Maximum value achievable is ', maxValue);
|
||||
writeln ('This is achieved by carrying ', n[1], ' panacea, ', n[2], ' ichor and ', n[3], ' gold items');
|
||||
writeln ('The weight of this carry is ', totalWeight:6:3, ' and the volume used is ', totalVolume:6:4);
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue