Cod sursa(job #533636)

Utilizator ladyLittle Lady lady Data 14 februarie 2011 12:35:04
Problema Subsir crescator maximal Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.74 kb
type vector=array[1..100000] of longint;

var v,l,p:vector;
    n,max,im:longint;

procedure citire;
var i:longint;
begin
assign(input,'scmax.in');reset(input);
readln(n);
 for i:=1 to n do
  read(v[i]);
close(input);
end;

procedure dinamic;
var i,j:longint;
begin
 l[n]:=1;
 p[n]:=-1;
 for i:=n-1 downto 1 do begin
  l[i]:=1;
  p[i]:=-1;
  for j:=i+1 to n do begin
   if (v[i]<v[j]) and (1+l[j]>max) then begin
    l[i]:=l[j]+1;
    max:=l[i];
    im:=i;
    p[i]:=j;
   end;
  end;
 end;
end;

procedure scrie;
var i:longint;
begin
assign(output,'scmax.out');rewrite(output);
writeln(max);
i:=im;
repeat
 write(v[i],' ');
 i:=p[i];
until i=-1;
close(output);
end;

begin
citire;
dinamic;
scrie;
end.