public static int[] find_maximum_subarray(int[] A,int low,int high){
if (low == high){
return new int[]{low,high,A[low]};
}else {
int mid = (low + high)/2;
int[] left_sum = find_maximum_subarray(A,low,mid);
int[] right_sum = find_maximum_subarray(A,mid + 1,high);
int[] cross_sum = find_max_crossing_subarray(A,low,mid,high);
** if (left_sum[] >= right_sum[] &&right_sum[] >= cross_sum[]){**
return left_sum;
}else if (right_sum[] >= left_sum[] &&left_sum[] >=cross_sum[]){
return right_sum;
}else {
return cross_sum;
}
}
}