#include <iostream>
#include <climits>
#include <cstdio>
using namespace std;
class Solution {
public:
int maxSubArray(int A[], int n)
{
if(!n) return 0;
int sum=0,maxsum=INT_MIN;
for(int i=0;i<n;i++)
{
if(sum+A[i]>sum)
sum+=A[i];
maxsum=max(maxsum,sum);
if(sum<0) sum=0;
}
return maxsum;
}
};
int main() {
Solution solver;
int sol[]={-3,-5,8,-1,-3,27};
printf("%d\n",solver.maxSubArray(sol,sizeof(sol)/sizeof(int)));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPGNzdGRpbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgU29sdXRpb24gewpwdWJsaWM6CiAgICBpbnQgbWF4U3ViQXJyYXkoaW50IEFbXSwgaW50IG4pIAogICAgewogICAgICAgIGlmKCFuKSByZXR1cm4gMDsKICAgICAgICBpbnQgc3VtPTAsbWF4c3VtPUlOVF9NSU47CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgCWlmKHN1bStBW2ldPnN1bSkKICAgICAgICAgICAgc3VtKz1BW2ldOwogICAgICAgICAgICBtYXhzdW09bWF4KG1heHN1bSxzdW0pOwogICAgICAgICAgICBpZihzdW08MCkgICBzdW09MDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1heHN1bTsKICAgIH0KfTsKaW50IG1haW4oKSB7CglTb2x1dGlvbiBzb2x2ZXI7CglpbnQgc29sW109ey0zLC01LDgsLTEsLTMsMjd9OwoJcHJpbnRmKCIlZFxuIixzb2x2ZXIubWF4U3ViQXJyYXkoc29sLHNpemVvZihzb2wpL3NpemVvZihpbnQpKSk7CglyZXR1cm4gMDsKfQ==