Pagini recente » Istoria paginii runda/luca_oji4/clasament | Istoria paginii runda/cerculdeinfo-lectia17-teoriajocurilo/clasament | Cod sursa (job #555008) | Istoria paginii runda/alteproblemegogule/clasament | Cod sursa (job #286738)
Cod sursa(job #286738)
const nmax=1000;
const mmax=50000;
var f,g:text;
v:array[1..nmax]of longint;
s:array[1..mmax] of 0..2;
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]);
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]=0 then
if s[j-v[i]]<>0 then s[j]:=1;
end;
writeln(g,k);
for i:=1 to n do
if s[v[i]]=2 then writeln(g,v[i]);
close(g);
end.