Pagini recente » Cod sursa (job #2274158) | Autentificare | Cod sursa (job #222854)
Cod sursa(job #222854)
type vec=array[0..1010]of longint;
var f,g:text;
v,b:vec;
n,i,x,l:longint;
procedure quick(l,r:longint);
var i,j,x,aux:longint;
begin
i:=l;
j:=r;
x:=v[(i+j)div 2];
repeat
while (v[i]<x)do inc(i);
while (v[j]>x)do dec(j);
if (i<=j)then
begin
aux:=v[i];
v[i]:=v[j];
v[j]:=aux;
inc(i);
dec(j);
end;
until i>j;
if (l<j)then quick(l,j);
if (i<r)then quick(i,r);
end;
procedure rez(x,n:longint;v:vec);
var a:array[0..50010]of byte;
i,j,k:longint;
begin
a[0]:=1;
for i:=1 to n do
begin
k:=0;
for j:=0 to x-v[i] do
if (a[j]=1)and(a[v[i]+j]=0)then
begin
a[v[i]+j]:=1;
k:=1;
end;
if (k=1)then
begin
inc(l);
b[l]:=v[i];
end;
end;
end;
begin
assign(f,'economie.in');
assign(g,'economie.out');
reset(f);
rewrite(g);
read(f,n);
for i:=1 to n do
begin
read(f,v[i]);
if (v[i]>x)then x:=v[i];
end;
quick(1,n);
rez(x,n,v);
writeln(g,l);
for i:=1 to l do writeln(g,b[i]);
close(f);
close(g);
end.