Pagini recente » Cod sursa (job #2161266) | Cod sursa (job #2160980) | Cod sursa (job #2457269) | Cod sursa (job #2685426) | Cod sursa (job #1357145)
program mire;
var v,b,poz:array[1..10000] of longint;
f,g:text;
n,i,j,x,nr:longint;
function cauta(va,st,dr:longint):longint;
var mij:longint;
begin
while st<=dr do
begin
mij:=(st+dr) div 2;
if va<=b[mij] then
dr:=mij-1
else
st:=mij+1;
end;
cauta:=st;
end;
function max(a,b:longint):longint;
begin
if a>b then
max:=a
else
max:=b;
end;
begin
assign(f,'scmax.in'); reset(f);
assign(g,'scmax.out'); rewrite(g);
readln(f,n);
for i:=1 to n do
read(f,v[i]);
poz[1]:=1;
b[1]:=v[1];
x:=1;
for i:=2 to n do
begin
j:=cauta(v[i],1,x);
b[j]:=v[i];
poz[i]:=j;
x:=max(j,x);
end;
nr:=x;
for i:=n downto 1 do
if poz[i]=nr then
begin
b[nr]:=v[i];
nr:=nr-1;
end;
writeln(g,x);
for i:=1 to x do
write(g,b[i],' ');
close(f);
close(g);
end.