/DACO - Dãy con tăng dài nhất

<Problem>

http://ntucoder.net/Problem/Details/78
              Uses Crt;
      Var n,i,j:longint;
          a,d,t:array[-100..100000] of longint;
      Begin
          readln(n);
          for i:=1 to n do read(a[i]);
          a[n+1]:=maxlongint; a[0]:=0;
          d[n+1]:=1;
          for i:=n downto 0 do
           begin
               for j:=i+1 to n+1 do
                if (a[i]<a[j]) and (d[i]<d[j]+1) then
                 begin
                     d[i]:=d[j]+1;
                     T[i]:=j;
                 end;
           end;
          writeln(d[0]-2);
          i:=0;
          while i<n do
           begin
               write(a[T[i]],' ');
               i:=T[i];
           end;
          readln;
      End.