solve maximum product subarray