Cod sursa(job #830599)

Utilizator KamiSC2Alexoi Cristian KamiSC2 Data 7 decembrie 2012 10:01:33
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 1.12 kb
CONST FISIER:string='scmax';

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

begin
     assign(fi,FISIER+'.in');reset(fi);
     read(fi,lung);
     for i:=1 to lung do
     begin
         read(fi,v[i]);
         urmator[i]:=-1;
         lungime[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
               begin
                  if lungime[ii]>=lungime[i] then
                  begin
                     lungime[i]:=1+lungime[ii];
                     urmator[i]:=ii;
                  end;
               end
               else if lungime[ii]=1 then break;

          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(fo,v[max_p],' ');
          max_p:=urmator[max_p];
     end;
     close(fo);
end.