Cod sursa(job #830590)

Utilizator KamiSC2Alexoi Cristian KamiSC2 Data 7 decembrie 2012 09:46:07
Problema Subsir crescator maximal Scor 5
Compilator fpc Status done
Runda Arhiva educationala Marime 0.99 kb
CONST FISIER:string='scmax';

var fi,fo:text;
lungime,urmator,v:array[1..100000] of integer;
i,ii,lung,max,max_p:integer;

begin
     assign(fi,FISIER+'.in');reset(fi);
     read(fi,lung);
     for i:=1 to lung do
     begin
         read(fi,v[i]);
         urmator[i]:=-1;
     end;

     close(fi);  max:=-1;
     for i:=lung-1 downto 1 do
     begin
          for ii:=i+1 to lung do
          begin
               if v[i]<v[ii] then
                  if lungime[ii]>=lungime[i] then
                  begin
                     lungime[i]:=1+lungime[ii];
                     urmator[i]:=ii;
                  end;
          end;
          if lungime[i]>max then
             begin
                  max:=lungime[i];
                  max_p:=i;
             end;
     end;

     assign(fo,FISIER+'.out'); rewrite(fo);
     writeln(fo,max);
     while max_p<>-1 do
     begin
          write(v[max_p],' ');
          max_p:=urmator[max_p];
     end;
     close(fo);
end.