n = length(a);
S = {1};
D = Inf*(1:n);
P = cell(1,n);
while numel(S)
p = S{end};
S(end)=[];
for q = setdiff(find(a(p(end),:)), p);
r = [p q];
S{end+1} = r;
d=b(r(2:end),:)-b(r(1:end-1),:);
d=d(:)'*d(:);
u=r(end);
if d < D(u)
D(u) = d;
P{u} = r;
end
end
end
D(isinf(D))=0;
[i,j]=max(D);
c=P{j};
|