Pagini recente » Borderou de evaluare (job #345087) | Cod sursa (job #2135411) | Cod sursa (job #1094859) | Cod sursa (job #1136390) | Cod sursa (job #470617)
Cod sursa(job #470617)
program scmax;
var f, g:text;
pozmax, i, n, j, max:longint;
lg, v, poz:array[1..100000] of longint;
procedure citire;
begin
readln(f,n);
for i:=1 to n do
read(f,v[i]);
end;
procedure reconstituire;
begin
while poz[pozmax]<>0 do
begin
write(g,v[pozmax],' ');
pozmax:=poz[pozmax];
end;
writeln(g);
end;
procedure rezolvare;
begin
n:=n+1;
v[n]:=maxlongint;
for i:=n-1 downto 1 do
for j:=i+1 to n do
if (v[i]<v[j]) and (lg[i]<lg[j]+1) then
begin
lg[i]:=lg[j]+1;
poz[i]:=j;
end;
for i:=1 to n do
if lg[i]>max then
begin
max:=lg[i];
pozmax:=i;
end;
writeln(g,max);
reconstituire;
end;
begin
assign(f,'scmax.in'); reset(f);
assign(g,'scmax.out'); rewrite(g);
citire;
rezolvare;
close(f);
close(g);
end.