Skip to main content

Maximize product of subarray sum with its maximum element

 

 #include 
 using namespace std;

 int max_product(int array[], int n){
    
	int max_so_far = INT_MIN, max_ending_here = 0;
        
	int max_num= array[0];
        
	for(int i = 0; i < n;i++){
    
		max_ending_here += array[i];
        
		max_num = max(max_num, array[i]);
        
		max_so_far = max(max_so_far, max_ending_here);
		
		max_ending_here = max(max_ending_here, 0);
			
	}
	return max_num * max_so_far;
 }



 int main(){
 
	int arr[] = {5,6,-12,15,7,8}; //size is 6
	
	cout<<"Maximum product of subarray sum with its maximum element is " << max_product(arr, 6);
	
	return 0;
 } 

Output

Comments