Pagini recente » Cod sursa (job #341889) | Cod sursa (job #2099748) | Cod sursa (job #1382942) | Cod sursa (job #2517085) | Cod sursa (job #157864)
Cod sursa(job #157864)
Program economie_cu_monezi;
type vector=array[1..1000]of word;
var v,m:vector;
i,j,n,k,min:word;
f,g:text;
ok:boolean;
procedure sortare(var v:vector);
var i,j,aux,k:integer;
begin
for i:=1 to n-1 do
begin
k:=i;
for j:=i+1 to n do
if v[j]<v[k] then
k:=j;
if k>i then
begin
aux:=v[i];
v[i]:=v[k];
v[k]:=aux;
end;
end;
end;
procedure back_rec(numar:integer);
var ii:word;
begin
ii:=1;
while(ii<=min) and not ok do
begin
if numar-m[ii]>0 then
back_rec(numar-m[ii])
else
if numar-m[ii]=0 then
ok:=true;
ii:=ii+1;
end;
end;
procedure incercare;
var ok:boolean;
begin
for i:=2 to n do
ok:=false;
back_rec(v[i]);
if not ok then
begin
min:=min+1;
m[min]:=v[i];
end;
end;
begin
assign(f,'economie.in');
reset(f);
assign(g,'economie.out');
rewrite(g);
read(f,n);
For i:=1 to n do
read(f,v[i]);
sortare(v);
If v[1]=1 then
begin
writeln(g,1);
write(g,1);
end
else
begin
min:=1;
i:=2;
m[1]:=v[1];
incercare;
writeln(g,min);
for j:=1 to min do
writeln(g,m[j]);
end;
close(f);
close(g);
end.