maxsofar = 0maxendinghere = 0for i = 0 to n-1 /* инвариант: значения maxendinghere и maxsofar точны для x[0..i-1] */ maxendinghere = max(maxendinghere + x[i], 0) maxsofar = max(maxendinghere, maxsofar)