Cod sursa(job #533645)

Utilizator ladyLittle Lady lady Data 14 februarie 2011 12:41:26
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 0.76 kb
type vector=array[0..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
   if (v[i]<v[j]) and (1+l[j]>l[i]) then begin
    l[i]:=l[j]+1;
    p[i]:=j;
    if l[i]>max then begin
     max:=l[i];
     im:=i;
    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.