Cod sursa(job #830388)
Utilizator | Data | 6 decembrie 2012 19:37:42 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 1.31 kb |
var v,lung,urm:array[1..100000] of longint;
i,j,max,max_p:integer;
fi,fo:text;
l:longint;
begin
assign(fi,'scmax.in'); reset(fi);
assign(fo,'scmax.out'); rewrite(fo);
readln(fi,l);
for i:=1 to l do
begin
read(fi,v[i]);
lung[i]:=1;
urm[i]:=-1;
end;
for i:=l downto 1 do
for j:=i+1 to l do
begin
if v[i]<v[j] then
if lung[i]<1 + lung[j] then
begin
lung[i]:=1 + lung[j];
urm[i]:=j;
end;
end;
max:=-1;
for i:=1 to l do
if lung[i]>max then
begin
max:=lung[i];
max_p:=i;
end;
writeln(fo,max);
while max_p<>-1 do
begin
write(fo,v[max_p],' ');
max_p:=urm[max_p];
end;
close(fi);
close(fo);
end.