Cod sursa(job #1356968)

Utilizator Stefan.Andras Stefan Stefan. Data 23 februarie 2015 17:57:40
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 1.03 kb
program infoarena4;
type vector = array[1..100000] of longint;
var f,g:text;
    n,i,poz,k,max:longint;
    v,lung,pred:vector;
procedure afisare(p:integer); //afisare recursiva
begin
   if p <> -1 then
        begin
        afisare(pred[p]);
        write(g,v[p],' ');
        end;
end;
begin
   assign(f,'scmax.in'); reset(f);
   assign(g,'scmax.out'); rewrite(g);
   readln(f,n);
   //citire
   for i:=1 to n do
      read(f,v[i]);
   //DINAMICA
   pred[1]:=-1;  max:=0;  //primul element nu are predecesor
   for i:=1 to n do
      begin
      pred[i]:=-1; lung[i]:=1;
      for k:=1 to i-1 do
          begin
          if (v[i] > v[k]) and (lung[k]+1 > lung[i]) then   //daca as putea pune v[i] dupa v[k]
                begin
                lung[i]:=lung[k]+1;
                pred[i]:=k;
                end;
          end;
      if max < lung[i] then    //actualizare maxim
         begin
         max:=lung[i]; poz:=i;
         end;
      end;
   writeln(g,max);
   afisare(poz);
   close(f); close(g);
end.