Pagini recente » Cod sursa (job #2891859) | Cod sursa (job #624258) | Cod sursa (job #2501630) | Cod sursa (job #2148856) | Cod sursa (job #680376)
Cod sursa(job #680376)
var v, best, pre:array [1.. 100000] of longint;
i, j, n, m, max, maxi, max2, maxi2, ri:longint;
f, g:text;
r:array [1..100000] of longint;
buf1, buf2:array [1.. 1 shl 17] of char;
begin
assign (f, 'scmax.in'); settextbuf (f, buf1); reset (f);
assign (g, 'scmax.out'); settextbuf (g, buf2); rewrite (g);
read (f, n); for i := 1 to n do read (f, v[i]);
best[1]:=1;
for i := 2 to n do
begin
max:=0; maxi:=0;
for j := i-1 downto 1 do
begin
if v[i]>v[j] then
begin
if best[j]>max then begin max := best[j]; maxi := j; end;
end;
end;
best[i] := max+1; pre[i]:=maxi;
if best[i]> max2 then begin max2:=best[i]; maxi2:=i; end;
end;
writeln (g, max2);
i:=maxi2;
while i <> 0 do
begin
inc (ri); r[ri]:=v[i];
i:=pre[i];
end;
for i := ri downto 1 do write (g, r[i], ' ');
close (f); close (g);
end.