Pagini recente » Cod sursa (job #1052435) | Cod sursa (job #1814887) | Cod sursa (job #2374647) | Cod sursa (job #52410) | Cod sursa (job #567231)
Cod sursa(job #567231)
program scmax;
type sir=array[0..100001] of longint;
siruletz=array[0..100001] of longword;
var a:sir;
next,x:siruletz;
i,j,n,maxt,max,maxi:longword;
d,o:text;
procedure citire;
begin
readln(d,n);
for i:=1 to n do read(d,a[i]);
close(d);
end;
procedure smaxi;
begin
max:=0;
for j:=i+1 to n do
if (a[j]>a[i])and(x[j]>max) then
begin
max:=x[j];
next[i]:=j;
end;
end;
procedure afisare;
begin
writeln(o,maxt);
i:=maxi;
repeat
write(o,a[i],' ');
i:=next[i];
until next[i]=0;
write(o,a[i],' ');
end;
begin
assign(d,'scmax.in');assign(o,'scmax.out');
reset(d);rewrite(o);
citire;
x[n]:=1;
maxt:=1;
for i:=n-1 downto 1 do
begin
smaxi;
x[i]:=max+1;
if x[i]>maxt then begin
maxi:=i;
maxt:=x[i];
end;
end;
afisare;
close(o);
end.