#include <bits/stdc++.h>
using namespace std;
int kadane(vector<int>& arr){
int n=arr.size();
int current, prev=0,maxsum=0;
for(int i=1;i<=n;i++){
current=max(prev+arr[i-1],arr[i-1]); //
int current1=max(current,0); //
prev=current1;
maxsum=max(maxsum,current1);
}
return maxsum;
}
int main() {
// kadane's algorithm
vector<int> arr={-1,1,2,3,-10,5,6,7};
int result=kadane(arr);
cout<<result<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQga2FkYW5lKHZlY3RvcjxpbnQ+JiBhcnIpewoJCglpbnQgbj1hcnIuc2l6ZSgpOwoJaW50IGN1cnJlbnQsIHByZXY9MCxtYXhzdW09MDsKCWZvcihpbnQgaT0xO2k8PW47aSsrKXsKCWN1cnJlbnQ9bWF4KHByZXYrYXJyW2ktMV0sYXJyW2ktMV0pOyAvLwoJaW50IGN1cnJlbnQxPW1heChjdXJyZW50LDApOyAgICAvLwoJcHJldj1jdXJyZW50MTsKCW1heHN1bT1tYXgobWF4c3VtLGN1cnJlbnQxKTsKCX0KCXJldHVybiBtYXhzdW07CgkKfQoKaW50IG1haW4oKSB7CgkvLyBrYWRhbmUncyBhbGdvcml0aG0gCgl2ZWN0b3I8aW50PiBhcnI9ey0xLDEsMiwzLC0xMCw1LDYsN307CglpbnQgcmVzdWx0PWthZGFuZShhcnIpOwoJY291dDw8cmVzdWx0PDxlbmRsOwoJcmV0dXJuIDA7Cn0=