Pagini recente » Cod sursa (job #1904928) | Cod sursa (job #263553) | Cod sursa (job #736966) | Cod sursa (job #1402414) | Cod sursa (job #2574503)
var t,v:array[1..100005] of longint;
n,i,k,st,dr,poz,mij:longint;
begin
assign(input,'scmax.in'); reset(input);
assign(output,'scmax.out'); rewrite(output);
readln(n);
for i:=1 to n do read(t[i]);
k:=1; v[k]:=t[1];
for i:=2 to n do
if t[i]>v[k] then
begin
inc(k);
v[k]:=t[i]
end
else
begin
st:=1; dr:=k; poz:=k+1;
while st<=dr do
begin
mij:=(st+dr) div 2;
if v[mij]>t[i] then
begin
poz:=mij;
dr:=mij-1
end else
st:=mij+1
end;
v[poz]:=t[i]
end;
writeln(k);
for i:=1 to k do write(v[i],' ');
close(input);
close(output)
end.