Pagini recente » Cod sursa (job #1159361) | Cod sursa (job #75492) | Cod sursa (job #1881607) | Cod sursa (job #584339) | Cod sursa (job #1891970)
Program p1;
var a,b,c: array[1..100100] of longint;
n,i,j,p: longint;
fi,fo: text;
begin
assign(fi,'scmax.in');
assign(fo,'scmax.out');
reset(fi);
rewrite(fo);
readln(fi,n);
i:=0;
while not(eoln(fi)) do begin
inc(i);
read(fi,a[i]);
end;
close(fi);
b[n]:=1; c[n]:=0;
p:=n;
for i:=n-1 downto 1 do begin
b[i]:=1;
p:=i;
for j:=i+1 to n do
if (a[j]>a[i]) and (b[j]>=b[p]) then p:=j;
if p<>i then begin
b[i]:=b[p]+1;
c[i]:=p;
end
else c[i]:=0;
end;
p:=1;
for i:=2 to n do
if b[i]>b[p] then p:=i;
writeln(fo,b[p]);
write(fo,a[p],' ');
while (c[p]<>0) do begin
p:=c[p];
write(fo,a[p],' '); inc(i);
end;
close(Fo);
end.