Cod sursa(job #503358)

Utilizator vendettaSalajan Razvan vendetta Data 22 noiembrie 2010 18:39:19
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 1.01 kb
var
    i,j,n,poz,max:longint;
    l,a:array[1..100000] of longint;
    buf:array[1..1 shl 20] of char;
    buf1:array[1..1 shl 20] of char;
    f,g:Text;
begin
    assign(F,'scmax.in');reset(F);
    assign(g,'scmax.out');rewrite(g);
    settextbuf(g,buf1);
    settextbuf(f,buf);
    readln(f,n);
    for i:=1 to n do read(f,a[i]);
    for i:=1 to n do l[i]:=0;
    l[n]:=1;
    for i:=n-1 downto 1 do
        begin
        max:=0;
        for j:=1+i to n do
            if (a[j]>a[i]) and (max<l[j]) then max:=l[j];
        l[i]:=1+max;
        end;
    max:=0;
    for i:=1 to n do
        if max<l[i] then
            begin
            max:=l[i];
            poz:=i;
            end;

    writeln(g,max);
    write(g,a[poz],' ');
    i:=poz;
    while max>1 do
        begin
        if(a[i]>a[poz]) and (l[i]=max-1) then
            begin
            poz:=i;
            write(g,a[poz],' ');
            max:=max-1;
            end;
        i:=i+1;
        end;
    close(f);close(g);
end.