Pagini recente » Cod sursa (job #1916437) | Cod sursa (job #2528690) | Cod sursa (job #321178) | Cod sursa (job #2480575) | Cod sursa (job #273034)
Cod sursa(job #273034)
var v,a,tata:array[1..100000]of longint;
f:text;
i,n,max,pozmax,poz:longint;
function caut(m:longint):longint;
var ok:boolean;
i:longint;
begin
ok:=false;
for i:=m+1 to n do if (v[m]<v[i])and(a[m]<a[i]+1) then begin
a[m]:=a[i]+1;
tata[m]:=i;
ok:=true;
end;
if ok then caut:=i
else caut:=0;
end;
procedure afisare(n:longint);
begin
if n<>0 then begin
write(f,v[n],' ');
afisare(tata[n]);
end;
end;
begin
assign(f,'scmax.in');reset(f);
read(f,n);
for i:=1 to n do read(f,v[i]);
close(f);
tata[n]:=0;
a[n]:=1;
max:=a[n];pozmax:=n;
for i:=n-1 downto 1 do begin
a[i]:=1;
poz:=caut(i);
if poz<>0 then begin
if max<a[i] then begin
max:=a[i];
pozmax:=i;
end;
end
else begin
a[i]:=1;
tata[i]:=0;
end;
end;
assign(f,'scmax.out');rewrite(f);
writeln(f,max);
afisare(pozmax);
close(f);
end.