//Kadanes Algo
#include <bits/stdc++.h>
using namespace std;
int main() {
vector<int> arr = {-2,1,-3,4,-1,2,1,-5,4};
int curr = arr[0];
int maxSum = arr[0];
for (int i = 1; i < arr.size(); i++) {
curr = max(arr[i], curr + arr[i]);
maxSum = max(maxSum, curr);
}
cout << "Maximum Subarray Sum: " << maxSum << endl;
}
Ly9LYWRhbmVzIEFsZ28KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIHZlY3RvcjxpbnQ+IGFyciA9IHstMiwxLC0zLDQsLTEsMiwxLC01LDR9OwoKICAgIGludCBjdXJyID0gYXJyWzBdOwogICAgaW50IG1heFN1bSA9IGFyclswXTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyci5zaXplKCk7IGkrKykgewogICAgICAgIGN1cnIgPSBtYXgoYXJyW2ldLCBjdXJyICsgYXJyW2ldKTsKICAgICAgICBtYXhTdW0gPSBtYXgobWF4U3VtLCBjdXJyKTsKICAgIH0KCiAgICBjb3V0IDw8ICJNYXhpbXVtIFN1YmFycmF5IFN1bTogIiA8PCBtYXhTdW0gPDwgZW5kbDsKfQ==