Pagini recente » Cod sursa (job #2227476) | Cod sursa (job #1513545) | Cod sursa (job #1083344) | Cod sursa (job #1839091) | Cod sursa (job #286913)
Cod sursa(job #286913)
program aliu;
type vector=array[1..1000] of longint;
var f:text;
a,b:vector;
v:array[1..50000] of 0..1;
i,j,n,nr,k,x,kk,max:longint;
procedure poz(li,ls:longint;var kk:longint;var a:vector);
var p,q,c,p1,q1:longint;
begin
p1:=0;
q1:=-1;
p:=li;
q:=ls;
while p<q do
begin
if a[p]>a[q] then begin
c:=a[p];
a[p]:=a[q];
a[q]:=c;
c:=p1;
p1:=-q1;
q1:=-c
end;
p:=p+p1;
q:=q+q1;
end;
kk:=p;
end;
procedure quick(li,ls:longint);
begin
if li<ls then begin
poz(li,ls,kk,a);
quick(li,kk-1);
quick(kk+1,ls)
end;
end;
begin
assign(f,'economie.in');
reset(f);
readln(f,n);
max:=0;
for i:=1 to n do begin
readln(f,a[i]);
if a[i]>max then max:=a[i]
end;
close(f);
assign(f,'economie.out');
rewrite(f);
quick(1,n);
nr:=0;
for i:=1 to n do
if v[a[i]]=0 then begin
nr:=nr+1;
b[nr]:=a[i];
v[a[i]]:=1;
for k:=1 to max do
if v[k]=1 then if (k+a[i])<=max then v[k+a[i]]:=1;
end;
writeln(f,nr);
for i:=1 to nr do writeln(f,b[i]);
close(f);
end.