Ljudi treba mi pomoć oko ovog algoritma,ne mogu da ga shvatim baš najbolje,ustvari ne mogu ni da nađem kod na internetu u Pascalu.
Nešto sam probao,ali ne ide.Inače ovo sam radio na principu jednog pseudokoda,ali izgleda da ga nisam dobro shvatio.(ili čak to nije možda ni tačno).
E sad,ovaj kod ne da je spor,nego nekad ni neće najjednostavniji primjer da uradi.
Nešto sam probao,ali ne ide.Inače ovo sam radio na principu jednog pseudokoda,ali izgleda da ga nisam dobro shvatio.(ili čak to nije možda ni tačno).
E sad,ovaj kod ne da je spor,nego nekad ni neće najjednostavniji primjer da uradi.
Code:
program knepsek;
type
ObicniNiz=array[1..100] of integer;
var
v,z:ObicniNiz;
M:ObicniNiz;
n,i,j,k,W:integer;
max:integer;
begin
readln(W,n); //W je zapremina ranca,n je broj predmeta
//unosenje vrijednosti
for i:=1 to n do
begin
readln(z[i],v[i]); //z je zapremina i-tog predmeta,v je vrijednost
end;
//glavni dio
for j:=1 to W do
begin
M[j]:=0;
k:=0;
for i:=1 to n do
begin
for j:=w downto 1 do
begin
if M[j-z[i]]+v[i]>M[j] then
M[j]:=M[j-z[i]]+v[i] ;
if M[j]>max then
max:=M[j]; //cuvam max
end;
end;
end;
writeln(max);
readln;
end.
program knepsek;
type
ObicniNiz=array[1..100] of integer;
var
v,z:ObicniNiz;
M:ObicniNiz;
n,i,j,k,W:integer;
max:integer;
begin
readln(W,n); //W je zapremina ranca,n je broj predmeta
//unosenje vrijednosti
for i:=1 to n do
begin
readln(z[i],v[i]); //z je zapremina i-tog predmeta,v je vrijednost
end;
//glavni dio
for j:=1 to W do
begin
M[j]:=0;
k:=0;
for i:=1 to n do
begin
for j:=w downto 1 do
begin
if M[j-z[i]]+v[i]>M[j] then
M[j]:=M[j-z[i]]+v[i] ;
if M[j]>max then
max:=M[j]; //cuvam max
end;
end;
end;
writeln(max);
readln;
end.