#include <iostream>
using namespace std;
void MaxSum(int *ary, int n)
{
int i, start=0, end=0, start1=0, max, sum;
max=ary[0];
for(i=1;i<n && ary[i]<=0;i++)
{
if(ary[i]>max)
{
max=ary[i];
start=end=i;
}
}
sum = max > 0 ? max : 0 ;
for(; i<n; i++)
{
if(ary[i] > 0 && sum <= 0)
start1 = i;
sum += ary[i];
if (sum > max)
{
start = start1;
end = i;
max = sum;
}
else if(sum < 0)
sum = 0;
}
printf("start %d, end %d, sum %d/n", start, end, max);
}
int main()
{
int m[10] = {2,3,-6,3,4,-3,-2,5,2,-3};
MaxSum(m, 10);
return 0;
} else if(sum < 0)
sum = 0;
}
printf("start %d, end %d, sum %d/n", start, end, max);
}
main()
{
int m[10] = {2,3,-6,3,4,3,-2,5,2,-3};
MaxSum(m, 10);
}