Pagini recente » Cod sursa (job #910901) | Cod sursa (job #2911297) | Cod sursa (job #2243051) | Cod sursa (job #2180974) | Cod sursa (job #1117958)
program scmax;
const fi='scmax.in';
fo='scmax.out';
var v,q,x,v2:array [0..100000] of longint;
f,g:text;
n,lq,i,aux:longint;
bufin,bufout:array[1..65000] of byte;
procedure ins(nr,st,dr:longint);
var mij:longint;
begin
if st=dr then
begin
q[dr]:=nr;
x[i]:=st;
end
else
begin
mij:=(st+dr)div 2;
if nr<=q[mij] then
ins(nr,st,mij)
else
ins(nr,mij+1,dr);
end;
end;
begin
assign(f,fi);reset(f);
assign(g,fo);rewrite(g); settextbuf(f,bufin); settextbuf(g,bufout);
read(f,n);
lq:=0;
for i:=1 to n do
begin
read(f,v[i]);
if v[i]>q[lq] then
begin
inc(lq);
q[lq]:=v[i];
x[i]:=lq;
end
else
ins(v[i],1,lq);
end;
writeln(g,lq);
aux:=lq;
for i:=n downto 1 do
begin
if x[i]=lq then
begin
v2[lq]:=v[i];
dec(lq);
end;
end;
for i:=1 to aux do
write(g,v2[i],' ');
close(f);
close(g);
end.