Pagini recente » Cod sursa (job #2232334) | Cod sursa (job #835501) | Cod sursa (job #2902008) | Cod sursa (job #285404) | Cod sursa (job #341850)
Cod sursa(job #341850)
var v,st,h:array[0..100000] of longint;
n,i,nr,a,b,mid,nrc:longint;
f,g:text;
begin
assign(f,'scmax.in');
assign(g,'scmax.out');
reset(f);rewrite(g);
readln(f,n);
for i:=1 to n do
read(f,v[i]);
nr:=1;
st[1]:=v[1];
for i:=2 to n do
begin
a:=1;b:=nr;
while a<=b do
begin
mid:=a+(b-a) shr 1;
if v[i]<=st[mid] then
b:=mid-1
else
a:=mid+1;
end;
st[b+1]:=v[i];
h[i]:=b+1;
if b+1>nr then
nr:=nr+1;
end;
writeln(g,nr);
nrc:=0;
st[0]:=maxlongint;
for i:=n downto 1 do
if (v[i]<st[nrc]) and (h[i]=nr) then
begin
nr:=nr-1;
nrc:=nrc+1;
st[nrc]:=v[i];
end;
for i:=nrc downto 1 do
write(g,st[i],' ');
close(f);close(g);
end.