Cod sursa(job #899051)

Utilizator andrei_toaderToader Andrei Sorin andrei_toader Data 28 februarie 2013 12:43:04
Problema Subsir crescator maximal Scor 65
Compilator fpc Status done
Runda Arhiva educationala Marime 0.84 kb
program dinamica;
var f,g:text;
    n,i,j,nr:longint;
    v:array[1..100000] of longint;
    q,p:array[0..100000] of longint;
    sol:array[1..100000] of longint;
    bufin,bufout:array[1..65000] of byte;

begin
 assign (f,'scmax.in'); reset (f);
 assign (g,'scmax.out'); rewrite (g);
 settextbuf (f,bufin);
 settextbuf (g,bufout);
 readln (f,n);
 nr:=0;
 for i:=1 to n do read (f,v[i]);
 for i:=1 to  n do
 begin
  if v[i]>q[nr] then
  begin
   inc(nr); q[nr]:=v[i]; p[i]:=nr;
  end
  else
  begin
  for j:=1 to nr do
   if q[j]>=v[i] then
   begin
    q[j]:=v[i];
    p[i]:=j;
    break;
   end;
  end;
 end;
 writeln (g,nr);
 for i:=nr downto 1 do
 begin
  for j:=n downto 1 do
   if p[j]=i then
   begin
    sol[i]:=v[j];
    break;
   end;
 end;
 for i:=1 to nr do write (g,sol[i],' ');
 close (F); close (G);
end.