#include <vector>
#include <iostream>
#include <limits>
int maxSubArray(std::vector<int> arr) {
int maxSum = std::numeric_limits<int>::min();
int currentSum = 0;
int size = arr.size();
for (int i = 0; i < size; i++) {
currentSum = std::max(arr[i], currentSum + arr[i]);
maxSum = std::max(currentSum, maxSum);
}
return maxSum;
}
int main()
{
std::vector<int> arr = {1, -2, 2, -3, 4, -1, -1, 2, 3, -5, 4}; // 4 + -1 + -1 + 2 + 3 = 7
std::wcout << maxSubArray(arr) << std::endl;
}
/*
run:
7
*/