Cod sursa(job #1641507)

Utilizator DoubleNyNinicu Cristian DoubleNy Data 8 martie 2016 23:49:04
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 1.04 kb
var lung,poz,sir:array[1..100005] of longint;
    i,j,n,m,prim,k:longint;

procedure calc();
var i,j:longint;
begin
     for i:=n downto 1 do
     begin
         lung[i]:=1; poz[i]:=0;
         for j:=i+1 to n do
             if ((sir[i]<sir[j]) and (lung[i]<lung[j]+1)) then
             begin
                 lung[i]:=lung[j]+1;
                 poz[i]:=j;
             end;
     if m<lung[i] then
     begin
         m:=lung[i];
         prim:=i;
     end;
     end;

end;


begin
    assign(input,'scmax.in'); reset(input);
    readln(input,n);
    for i:=1 to n do read(input,sir[i]);
    m:=0;
    calc;
    assign(output,'scmax.out'); rewrite(output);
    writeln(output,m);
   // for i:=1 to n do write(poz[i],' ');
   // writeln;
    i:=prim;
    k:=1;
    write(output,sir[prim],' ');
    while k<m do
    begin
       if poz[i]<>0 then i:=poz[i];
       write(output,sir[i],' ');
       inc(k);
    end;
   //for i:=1 to n do if poz[i]<>0 then write(sir[poz[i]],' ');
    close(input); close(output);
end.