Cod sursa(job #1112383)

Utilizator huniHegedus Hunor huni Data 19 februarie 2014 18:57:09
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 1.08 kb
program scm;
type vektor=array[1..100000] of longint;
var i,j,n,max,k:longint;
    v,os,hossz:vektor;
    f,g:text;
procedure beolvas(var n:longint;var v:vektor);
begin
  assign(f,'scmax.in');
  reset(f);
  readln(f,n);
  for i:=1 to n do read(f,v[i]);
  close(f);
end;

{foo}

begin
  beolvas(n,v);
  hossz[n]:=1;
  os[n]:=0;
  for i:=n-1 downto 1 do
    begin
      max:=0;
      for j:=i+1 to n do
        if v[i]<v[j] then begin
                            if hossz[j]>max then begin
                                                   os[i]:=j;
                                                   max:=hossz[j];
                                                 end;
                            hossz[i]:=max+1;
                           end;
      if hossz[i]=0 then begin hossz[i]:=1; os[i]:=0; end;
    end;
   max:=0;
   for i:=1 to n do
   begin
     if hossz[i]>max then begin max:=hossz[i];k:=i; end;
   end;
 assign(g,'scmax.out');
 rewrite(g);
 writeln(g,hossz[k]);
 for i:=1 to max do   begin
   write(g,v[k],' ');
   k:=os[k];
 end;
 close(g);
end.