4 - Segmento de Suma Máxima (p.144)


[ con N: Int, A: array [0,N) of Int; var n,r,u: Int
$\{R: N \geq 0\}$ 
n,r := 0,0
$\{P: r=(Max.p.q : 0\leq p\leq q\leq n : sum.p.q) \wedge 0\leq n\leq N \wedge u=(Max.p : 0\leq p\leq n : sum.p.n)\}$ 
$[sum.p.q = (\sum i: p\leq i<q:A.i)]$ 
 do
	n$\neq$N $\rightarrow$	u := (A.n+u) max 0
			r := r max u
			n := n+1
 od
$\{Q: r=(Max.p.q : 0\leq p\leq q\leq N : sum.p.q) \}$ 
$[sum.p.q = (\sum i: p\leq i<q:A.i)]$ 
]



nicolas@turing.fis.uncor.edu