class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
int n = array.size();
int max_val = array[0];
int prev = array[0];
for(int i=1; i<n; i++){
prev = max(array[i], array[i]+prev);
max_val = max(max_val, prev);
}
return max_val;
}
};