linear max subarray problem