#include <bits/stdc++.h>
using namespace std;
int max_subarray_sum(vector<int> &nums){
int cur_sum = nums[0];
int max_sum = nums[0];
int len = nums.size();
for(int i = 1; i < len; i++){
cur_sum = max(nums[i], cur_sum + nums[i]);
max_sum = max(max_sum, cur_sum);
}
return max_sum;
}
int main(){
vector<int> in_nums;
string str_nums;
int temp_num;
cout << "Enter array of int separated with a comma and a space. e.g. '1, 2, 3, 4'\n";
cout << "> ";
getline(cin, str_nums);
stringstream ss(str_nums);
while(ss >> temp_num){
in_nums.push_back(temp_num);
char peeked = ss.peek();
if(peeked == ',' || peeked == ' '){
ss.ignore();
}
}
cout << "Max subarray sum: " << max_subarray_sum(in_nums);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWF4X3N1YmFycmF5X3N1bSh2ZWN0b3I8aW50PiAmbnVtcyl7CiAgICBpbnQgY3VyX3N1bSA9IG51bXNbMF07CiAgICBpbnQgbWF4X3N1bSA9IG51bXNbMF07CiAgICBpbnQgbGVuID0gbnVtcy5zaXplKCk7CgogICAgZm9yKGludCBpID0gMTsgaSA8IGxlbjsgaSsrKXsKICAgICAgICBjdXJfc3VtID0gbWF4KG51bXNbaV0sIGN1cl9zdW0gKyBudW1zW2ldKTsKICAgICAgICBtYXhfc3VtID0gbWF4KG1heF9zdW0sIGN1cl9zdW0pOwogICAgfQoKICAgIHJldHVybiBtYXhfc3VtOwp9CgppbnQgbWFpbigpewogICAgdmVjdG9yPGludD4gaW5fbnVtczsKICAgIHN0cmluZyBzdHJfbnVtczsKICAgIGludCB0ZW1wX251bTsKCiAgICBjb3V0IDw8ICJFbnRlciBhcnJheSBvZiBpbnQgc2VwYXJhdGVkIHdpdGggYSBjb21tYSBhbmQgYSBzcGFjZS4gZS5nLiAnMSwgMiwgMywgNCdcbiI7CiAgICBjb3V0IDw8ICI+ICI7CiAgICBnZXRsaW5lKGNpbiwgc3RyX251bXMpOwogICAgc3RyaW5nc3RyZWFtIHNzKHN0cl9udW1zKTsKCiAgICB3aGlsZShzcyA+PiB0ZW1wX251bSl7CiAgICAgICAgaW5fbnVtcy5wdXNoX2JhY2sodGVtcF9udW0pOwogICAgICAgIGNoYXIgcGVla2VkID0gc3MucGVlaygpOwogICAgICAgIGlmKHBlZWtlZCA9PSAnLCcgfHwgcGVla2VkID09ICcgJyl7CiAgICAgICAgICAgIHNzLmlnbm9yZSgpOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8ICJNYXggc3ViYXJyYXkgc3VtOiAiIDw8IG1heF9zdWJhcnJheV9zdW0oaW5fbnVtcyk7CgoKICAgIHJldHVybiAwOwp9
LTIsIDEsIC0zLCA0LCAtMSwgMiwgMSwgLTUsIDQ=
-2, 1, -3, 4, -1, 2, 1, -5, 4