Cod sursa(job #577951)

Utilizator dica69Alexandru Lincan dica69 Data 10 aprilie 2011 20:09:00
Problema Subsir crescator maximal Scor 60
Compilator fpc Status done
Runda Arhiva educationala Marime 0.6 kb
var a:array[1..100000] of longint;
    l:array[1..100000] of integer;
    max,k,n,i,j:longint;
begin
assign(input,'scmax.in');
reset(input);
assign(output,'scmax.out');
rewrite(output);
readln(n);
for i:=1 to n do read(a[i]);

l[n]:=1;
for i:=n-1 downto 1 do
begin
max:=0;
for j:=i+1 to n do
if (l[j]>max) and (a[i]<=a[j]) then max:=l[j];
l[i]:=1+max;
end;

max:=l[1];k:=1;
for i:=2 to n do
if l[i]>max then
begin
max:=l[i];
k:=i;
end;

writeln(max);
write(a[k],' ');j:=k;
for i:=k+1 to n do
if (l[i]=max-1) and (a[i]>=a[j]) then
begin
write(a[i],' ');
dec(max);
j:=i;
end;
end.