Pagini recente » Cod sursa (job #1897386) | Cod sursa (job #1631472) | Cod sursa (job #2090495) | Cod sursa (job #379760) | Cod sursa (job #286757)
Cod sursa(job #286757)
const nmax=1000;
const mmax=50000;
var f,g:text;
v:array[1..nmax]of longint;
s:array[1..mmax] of shortint;
k,n,i,j:longint;
procedure divid(st,dr:longint);
var aux,p,i,j:longint;
begin
i:=st;
j:=dr;
p:=v[(st+dr)div 2];
while (i<=j) do
begin
while (v[i]<p) do i:=i+1;
while (v[j]>p) do j:=j-1;
if i<=j then begin
aux:=v[i];
v[i]:=v[j];
v[j]:=aux;
i:=i+1;
j:=j-1;
end;
end;
if st<j then divid(st,j);
if dr>i then divid(i,dr);
end;
begin
assign(f,'economie.in');
reset(f);
assign(g,'economie.out');
rewrite(g);
readln(f,n);
for i:=1 to n do
readln(f,v[i]);
close(f);
divid(1,n);
for i:=1 to n do
begin
if s[v[i]]=0 then begin s[v[i]]:=2; k:=k+1;end;
for j:=v[i]+1 to v[n]do
if s[j-v[i]]<>0 then s[j]:=1;
end;
writeln(g,k);
for i:=1 to v[n] do
if s[i]=2 then writeln(g,i);
close(g);
end.