Cod sursa(job #1877043)

Utilizator Multimiliardermultimiliarder Multimiliarder Data 12 februarie 2017 21:11:12
Problema Problema rucsacului Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.93 kb
program Rucsac;
uses crt;
const max=7;

var C,G,X: array [1..max] of Real;

n,i,j:Integer; GG,GGr,sum,aux:Real;

begin clrscr;

Write('Nr. obiecte = ');

ReadLn (n);

For i:=1 to n do

begin

Write ('C[',i,']=');

ReadLN (c[i]);

Write ('G[',i,']=');

ReadLn (G[i]);

end;

Write('Greut. max. = ');

ReadLn (GG);

for i:=1 to n-1 do

for j:=i+1 to n do

if C[j]/G[j]>C[i]/G[i] then

begin

aux:=C[j]; C[j]:=C[i];

C[i]:=aux; aux:=G[j];

G[j]:=G[i]; G[i]:=aux;

end;

WriteLN('Am ordonat . . .');

for i:=1 to n do

WriteLN('C[',i,']=',C[i] :5:2,

'G[',i,']=' ,G[i] :5:2,

C[i]/G[i] :5:2);

GGr:=0; i:=1;

While (i<=n) do

if GG > GGr+G[i] then

begin

X[i]:=c[i];

GGr:=GGr+G[i]; i:=i+1

end

else

begin

X[i]:=(GG-GGr)*(c[i]/g[i]);

For j:=i+1 to n do X[j]:=0;

I:=n+1

end;

for i:=1 to n do sum:=sum+x[i];

WriteLn ('profitul maxim = ',sum :5:2);

ReadLn

end.