Cod sursa(job #2400375)
Utilizator | Data | 8 aprilie 2019 17:57:47 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 1.53 kb |
type rucsac=record
masa,cost,pret:integer;
end;
var n,i,j:byte;
a:array[1..100] of rucsac;
rs,g,k:real;
x:rucsac;
fi,fo:text;
begin assign(fi,'rucsac.in');reset(fi);
assign(fo,'rucsac.out');rewrite(fo);
read(fi,n,k);
writeln(fo,'n=',n);
writeln(fo,'k=',k);
for i:=1 to n do begin
writeln(fo,'masa:',a[i].masa);
writeln(fo,'cost:',a[i].cost);
a[i].pret:=a[i].cost div a[i].masa;
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if (a[i].pret<a[j].pret) then begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
i:=1;
while (i<=n) and (k<=g) do
if a[i].masa +k>g then begin
rs:=(g-k)*a[i].pret;
break;end
else begin
rs:=rs+a[i].cost;
k:=k+a[i].masa;
inc(i);
end;
writeln(fo,'rs=',rs:0:5);
readln;
end.