#include <stdio.h>
#include <limits.h>
int maxSubArray(int arr[], int size) {
int maxSum = INT_MIN;
int currentSum = 0;
for (int i = 0; i < size; i++) {
currentSum = (arr[i] > currentSum + arr[i]) ? arr[i] : currentSum + arr[i];
maxSum = (currentSum > maxSum) ? currentSum : maxSum;
}
return maxSum;
}
int main()
{
int arr[] = {1, -2, 2, -3, 4, -1, -1, 2, 3, -5, 4}; // 4 + -1 + -1 + 2 + 3 = 7
int size = sizeof(arr) / sizeof(arr[0]);
printf("%d\n", maxSubArray(arr, size));
return 0;
}
/*
run:
7
*/