function [S,GS]=gss(a) % Greatest subsequential sum a =[0;a(:);0]'; ix1 = find(a(2:end) >0 & a(1:end-1) <= 0); ix2 = find(a(2:end)<=0 & a(1:end-1) > 0); K = 0; S = 0; for k = 1:length(ix1) s = sum(a(ix1(k)+1:ix2(k))); if (s>S) S=s; K=k; end; end; GS = a(ix1(K)+1:ix2(K));