class Solution {
public:
    int FindGreatestSumOfSubArray(vector<int>& array) {
        int ans = INT_MIN, f = 0;
        for (int x : array) {
            f = max(f, 0) + x;
            ans = max(ans, f);
        }
        return ans;
    }
};