Cod sursa(job #702308)

Utilizator promix2012petruta andrei promix2012 Data 1 martie 2012 20:54:35
Problema Subsir crescator maximal Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.97 kb
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.