Pagini recente » Cod sursa (job #2791841) | Cod sursa (job #1746370) | Cod sursa (job #576124) | Cod sursa (job #2323483) | Cod sursa (job #702772)
Cod sursa(job #702772)
program subsiraltfel;
var fi,fo:Text;
i,j,n,t,nrc,poz,nrco,lung,l:longint;
q,v,p,final:array[1..1000000]of longint;
ok:boolean;
procedure pune(x,st,dr:integer);
var mij:longint;
begin
if st=dr then
begin
q[st]:=x;
p[i]:=st;
end
else
begin
mij:=(st+dr) div 2;
if x<q[mij] then pune(x,st,mij)
else
pune(x,mij+1,dr);
end;
end;
begin
assign(fi,'scmax.in'); reset(fi);
assign(fo,'scmax.out'); rewrite(fo);
readln(fi,n);
poz:=0;
for i:=1 to n do
begin
read(fi,v[i]);
if v[i]>q[poz] then
begin
inc(poz);
q[poz]:=v[i];
p[i]:=poz;
end
else
pune(v[i],1,poz);
end;
writeln(fo,poz);
lung:=poz;
for i:=n downto 1 do
begin
if p[i]=poz then
begin
final[poz]:=v[i];
dec(poz);
end;
end;
for i:=1 to lung do write(fo,final[i],' ');
close(fi); close(Fo);
end.