Cod sursa(job #1891970)

Utilizator DimaTCDima Trubca DimaTC Data 24 februarie 2017 15:22:17
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 1.25 kb
Program p1;
var a,b,c: array[1..100100] of longint;
    n,i,j,p: longint;
    fi,fo: text;
begin
     assign(fi,'scmax.in');
     assign(fo,'scmax.out');
     reset(fi);
     rewrite(fo);
     readln(fi,n);

     i:=0;
     while not(eoln(fi)) do begin
                               inc(i);
                               read(fi,a[i]);
                            end;

     close(fi);
     b[n]:=1; c[n]:=0;
     p:=n;
     for i:=n-1 downto 1 do begin
                             b[i]:=1;
                             p:=i;
                             for j:=i+1 to n do
                                        if (a[j]>a[i]) and (b[j]>=b[p]) then p:=j;

                             if p<>i then begin
                                             b[i]:=b[p]+1;
                                             c[i]:=p;
                                          end
                                     else c[i]:=0;
                           end;
     p:=1;
     for i:=2 to n do
              if b[i]>b[p] then p:=i;
     writeln(fo,b[p]);
     write(fo,a[p],' ');

     while (c[p]<>0) do begin
                        p:=c[p];
                        write(fo,a[p],' '); inc(i);
                      end;
     close(Fo);
end.