Pagini recente » Cod sursa (job #3122670) | Cod sursa (job #768784) | Cod sursa (job #843796) | Cod sursa (job #2477507) | Cod sursa (job #183993)
Cod sursa(job #183993)
program economii;
var v, rez : array[0..1001] of integer;
uz : array[0..50001] of boolean;
i, j, N, nr : integer;
f, g : text;
procedure sort(p,q:integer);
var st, dr, m, aux:integer;
begin
st := p;
dr := q;
m := v[(st + dr) div 2];
while (st < dr) do
begin
while (v[st] < m) do inc(st);
while (v[dr] > m) do dec(dr);
if (st<=dr) then
begin
aux := v[st];
v[st] := v[dr];
v[dr] := aux;
inc(st);
dec(dr);
end;
end;
if (st < q) then sort(st,q);
if (dr > p) then sort(p,dr);
end;
begin
assign(f,'economie.in'); reset(f);
readln(f,N);
for i := 1 to N do readln(f,v[i]);
sort(1,N);
for i:=1 to N do
begin
if not(uz[v[i]]) then
begin
inc(nr);
rez[nr] := v[i];
uz[v[i]] := true;
for j :=1 to (v[N] - v[i]) do
if (uz[j]) then
uz[j+v[i]] := true;
end;
end;
close(f);
assign(g,'economie.out'); rewrite(g);
writeln(g,nr);
for i:=1 to nr do
writeln(g,rez[i]);
close(g);
end.