Pagini recente » Cod sursa (job #1541205) | Cod sursa (job #3272408) | Borderou de evaluare (job #2318949) | Borderou de evaluare (job #432882) | Cod sursa (job #530763)
Cod sursa(job #530763)
program scccmax;
var l,p,a:array[1..100000] of longint;
n:longint;
rl,ri:longint;
Procedure citire;
var i:longint;
begin
assign(input,'scmax.in');reset(input);
readln(n);
for i:=0 to (n DIV 5)-1 do
read(a[5*i+1],a[5*i+2],a[5*i+3],a[5*i+4],a[5*i+5]);
for i:=5*(n div 5)+1 to n do read(a[i]);
end;
Procedure dinamic;
var i,j:longint;
begin
l[n]:=1;
p[n]:=-1;
for i:=n-1 downto 1 do
begin
l[i]:=1;
p[i]:=-1;
for j:=i+1 to n do
if (a[i]<=a[j]) and (l[i]<1+l[j]) then
begin
l[i]:=1+l[j];
p[i]:=j;
if rl<l[i] then begin
rl:=l[i];
ri:=i;
end;
end;
end;
end;
Procedure sol;
var i:longint;
begin
assign(output,'scmax.out');rewrite(output);
writeln(rl);
while p[ri]>0 do
begin
write(a[ri],' ');
ri:=p[ri];
end;
write(a[ri]);
end;
begin
citire;
dinamic;
sol;
close(input);
close(output);
end.