Pagini recente » Cod sursa (job #3135244) | Cod sursa (job #1778515) | Cod sursa (job #1712528) | Cod sursa (job #784162) | Cod sursa (job #5475)
Cod sursa(job #5475)
program aliniere;
var f:text;
n,i,j,k,max:word;
l1,l2:array[1..1000] of word;
v:array[1..1000] of real;
max1:real;
begin
assign(f,'aliniere.in'); reset(f);
readln(f,n);
for i:= 1 to n do
read(f,v[i]);
close(f);
l1[1]:=1;
l2[1]:=1;
for i:= 2 to n do begin
l1[i]:=0;
l2[i]:=0;
for j:= i downto 1 do
if (v[j]<v[i]) and
(l1[i]<l1[j]) then
l1[i]:=l1[j];
l1[i]:=l1[i]+1;
for j:=i downto 1 do
if (v[j]>v[i])
and (l2[i]<l2[j]) then
l2[i]:=l2[j];
l2[i]:=l2[i]+1;
end;
max:=l1[1]+l2[1];
k:=1;
for i:= 2 to n do
if max<l1[i]+l2[i] then begin
max:=l1[i]+l2[i];
k:=i;
end;
max1:=v[k];
for i:= k-1 downto 1 do
if v[i]<=max1 then begin
max1:=v[i];
v[i]:=0;
end;
max1:=v[k];
for i:= k to n do
if max1>=v[i] then begin
max1:=v[i];
v[i]:=0;
end;
assign(f,'aliniere.out'); rewrite(f);
writeln(f,max-1);
for i:= 1 to n do
if v[i]<>0 then write(f,v[i],' ');
close(f);
end.