Cod sursa(job #702502)

Utilizator andrei_toaderToader Andrei Sorin andrei_toader Data 1 martie 2012 22:16:07
Problema Subsir crescator maximal Scor 90
Compilator fpc Status done
Runda Arhiva educationala Marime 0.83 kb
program subsir;
var f,g:text;
    n,i:longint;
    p,q,v,solutie:array[0..100000] of longint;
    nr,lungime:longint;
    bufin,bufout:array[1..1 shl 17] of char;

procedure inserare (nr:longint;i:longint);
var j:longint;
begin
 for j:=1 to nr do
  if q[j]>v[i] then
  begin
   q[j]:=v[i];
   p[i]:=j;
   break;
  end;
end;

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]);
 nr:=0;
 for i:=1 to n do
 begin
  if v[i]>q[nr] then
  begin
   nr:=nr+1;
   q[nr]:=v[i];
   p[i]:=nr;
  end
  else
   inserare (nr,i);
 end;
 writeln (g,nr);
 lungime:=nr;
 for i:=n downto 1 do
  if p[i]=nr then
  begin
   solutie[nr]:=v[i];
   nr:=nr-1;
  end;
  for i:=1 to lungime do
        write (g,solutie[i],' ');
 close (f); close (G);
end.