题目链接
题目及样例
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int matrix[100000];
int findmax1(int n)
{
int i=0;
int thisum=0,maxsum=0;
int r=0,l=0;
int ml=0;
bool f=0;
bool f2=0;
for(i=0;i<n;i++)
{
thisum+=matrix[i];
if(thisum>maxsum)
{
r=i;
f=1;
maxsum=thisum;
ml=l;
}
else if(!f2&&thisum==maxsum&&thisum==0&&!f)
{
if(l==i)
{
f2=1;
r=l;
ml=l;
}
}
if(thisum<0)
{
if(i==n-1&&!f&&!f2)
{
l=0;
r=n-1;
}
l=i+1;
thisum=0;
}
}
printf("%d %d %d",maxsum,matrix[ml],matrix[r]);
return maxsum;
}int main()
{
//struct List a={0,0,0,0};
int n;
int i=0;
if(scanf("%d",&n))
{
for(i=0;i<n;i++)
{
if(scanf("%d",&(matrix[i])))
{
}
}
}
findmax1(n);
//printf("%d",findmax1(n));
}