Cod sursa(job #341850)

Utilizator ionutz32Ilie Ionut ionutz32 Data 19 august 2009 18:47:25
Problema Subsir crescator maximal Scor 95
Compilator fpc Status done
Runda Arhiva educationala Marime 0.79 kb
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.