#include<stdio.h>
int maxo(int a,int b)
{
return((a>b)?a:b);
}
int kadane(int array[],int size) {
int max = array[0], currMax = array[0];
for (int i = 1; i < size; i++) {
currMax = maxo(array[i], currMax + array[i]);
max = maxo(max, currMax);
}
return max;
}
int main()
{
int a[]={-2,-3,4,-1,-2,5,3};
printf("%d",kadane(a,7));
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG1heG8oaW50IGEsaW50IGIpCnsKCXJldHVybigoYT5iKT9hOmIpOwp9CgppbnQga2FkYW5lKGludCBhcnJheVtdLGludCBzaXplKSB7CiAgICBpbnQgbWF4ID0gYXJyYXlbMF0sIGN1cnJNYXggPSBhcnJheVswXTsKICAgICAKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2l6ZTsgaSsrKSB7CiAgICAgICAgY3Vyck1heCA9IG1heG8oYXJyYXlbaV0sIGN1cnJNYXggKyBhcnJheVtpXSk7CiAgICAgICAgbWF4ID0gbWF4byhtYXgsIGN1cnJNYXgpOwogICAgfQogICAgIAogICAgcmV0dXJuIG1heDsKfQoKaW50IG1haW4oKQp7CglpbnQgYVtdPXstMiwtMyw0LC0xLC0yLDUsM307CglwcmludGYoIiVkIixrYWRhbmUoYSw3KSk7CglyZXR1cm4gMDsKfQ==