Cod sursa(job #1199253)

Utilizator cojocarugabiReality cojocarugabi Data 18 iunie 2014 18:09:33
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 1.3 kb
var s:array[0..100000] of longint;
    v:array[0..100000] of longint;
    p:array[0..100000] of longint;
    a:array[0..100000] of longint;
  i,n:                    longint;
    f:                    longint;
  max:                    longint;
    j:                    longint;
 b,b1:array[1..1 shl 15] of  char;
fi,fo:                       text;
        begin
         assign(fi,'scmax.in');
         reset(fi);
         assign(fo,'scmax.out');
         rewrite(fo);
         settextbuf(fi,b);
         settextbuf(fo,b1);
         readln(fi,n);
         for i:=1 to n do
               read(fi,s[i]);
         v[1]:=1;
         s[0]:=0;
         v[0]:=0;
         for i:=2 to n do begin
           max:=-1;
            for j:=i downto 0 do
                if (s[j]<s[i])and(v[j]>max) then begin
                  max:=v[j];f:=j;
                end;
           v[i]:=max+1;
           p[i]:=f;
         end;
         max:=-1;
         for i:=1 to n do
         if v[i]>max then begin
           j:=i;max:=v[i];
         end;
         writeln(fo,max);
         f:=0;
         while (j>0) do begin
           inc(f);
           a[f]:=s[j];
           j:=p[j];
         end;
         for i:=f downto 1 do write(fo,a[i],' ');
         close(fi);
         close(fo);
        end.