Cod sursa(job #411276)
var
a,l:array[1..100] of integer;
i,j,n,max:integer;
f,g:text;
procedure citire;
begin
assign(f,'scmax.in');
reset(f);
readln(f,n);
for I:=1 to n do
read(f,a[i]);
close(f);
end;
begin
citire;
l[n]:=1;
for I:=n-1 downto 1 do
begin
l[i]:=1;
for j:=i+1 to n do
if (a[i]<a[j]) and(l[i]<l[j]+1)
then
l[i]:=l[j]+1;
end;
assign(g,'scmax.out');
rewrite(g);
i:=1;
for J:=2 to n do
if l[j]>l[i]
then
i:=j;
max:=l[i];
writeln(g,max);
write(g,a[i],' ');
for j:=i+1 to n do
if (a[j]>a[i]) and (l[j]=max-1)
then
begin
write(g,a[j],' ');
max:=max-1;
end;
close(g);
end.