maximum subarray sum in c++

C++
# Python program to find maximum contiguous subarray 
  
def maxSubArraySum(a,size): 
      
    max_so_far =a[0] 
    curr_max = a[0] 
      
    for i in range(1,size): 
        curr_max = max(a[i], curr_max + a[i]) 
        max_so_far = max(max_so_far,curr_max) 
          
    return max_so_far 
  
# Driver function to check the above function  
a = [-2, -3, 4, -1, -2, 1, 5, -3] 
print"Maximum contiguous sum is" , maxSubArraySum(a,len(a)) 
  
#This code is contributed by _Devesh Agrawal_ 
int maxsubarraysum(vector<int> ar) {
  int best = 0, sum = 0;
  for (int i=0; i<ar.size(); i++) {
    sum = max(ar[i], sum + ar[i]);
    best = max(best, sum);
  }
  return best;
}public int kadane(int[] arr){
	int max_so_far = 0, curr_max = Integer.MIN_VALUE;
    for(int i: arr){
    	max_so_far += i;
        if(max_so_far<0) max_so_far = 0;
        if(max_so_far>curr_max) curr_max = max_so_far;
    }
    return curr_max;
}
Source

Also in C++: