Pagini recente » Cod sursa (job #1258557) | Cod sursa (job #196418) | Cod sursa (job #481243) | Cod sursa (job #1106004) | Cod sursa (job #1641507)
var lung,poz,sir:array[1..100005] of longint;
i,j,n,m,prim,k:longint;
procedure calc();
var i,j:longint;
begin
for i:=n downto 1 do
begin
lung[i]:=1; poz[i]:=0;
for j:=i+1 to n do
if ((sir[i]<sir[j]) and (lung[i]<lung[j]+1)) then
begin
lung[i]:=lung[j]+1;
poz[i]:=j;
end;
if m<lung[i] then
begin
m:=lung[i];
prim:=i;
end;
end;
end;
begin
assign(input,'scmax.in'); reset(input);
readln(input,n);
for i:=1 to n do read(input,sir[i]);
m:=0;
calc;
assign(output,'scmax.out'); rewrite(output);
writeln(output,m);
// for i:=1 to n do write(poz[i],' ');
// writeln;
i:=prim;
k:=1;
write(output,sir[prim],' ');
while k<m do
begin
if poz[i]<>0 then i:=poz[i];
write(output,sir[i],' ');
inc(k);
end;
//for i:=1 to n do if poz[i]<>0 then write(sir[poz[i]],' ');
close(input); close(output);
end.