Cod sursa(job #209161)

Utilizator FllorynMitu Florin Danut Flloryn Data 21 septembrie 2008 09:02:54
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 0.82 kb
program pascal;
var f,g:text;
   sol,v:array[1..100000] of longint;
   n,i,j,k,p,max,maxim:longint;
begin
 assign(f,'scmax.in'); reset(f);
 assign(g,'scmax.out'); rewrite(g);
 readln(f,n);
 for i:=1 to n do read(f,v[i]);

 sol[n]:=1;
 maxim:=0;
 for k:=n-1 downto 1 do
  begin
   max:=0;
   for j:=k+1 to n do
    if (v[k]<v[j]) and (sol[j]>max) then max:=sol[j];
    sol[k]:=max+1;
    if sol[k]>maxim then
           begin
              maxim:=sol[k];
              p:=k;
           end;
  end;



 max:=maxim;
 writeln(g,maxim);
 write(g,v[p],' ');
 I:=p;
 maxim:=v[p];
 while max<>1 do
  begin
   i:=i+1;
   if (sol[i]=max-1) and (v[i]>maxim) then
         begin
          write(g,v[i],' ');
          max:=max-1;
          maxim:=v[i];
         end;
  end;
  close(f);
  close(g);
end.