#include<stdio.h>
int list[10005];
void MaxSubseqSum(int list[],int n);
int main()
{
int n;
scanf("%d",&n);
int i;
for(i=0;i<n;i++)
{
scanf("%d",&list[i]);
}
MaxSubseqSum(list,n);
return 0;
}
void MaxSubseqSum(int list[],int n)
{
int ThisSum=0,MaxSum=-1;
int begin=0,end=0,new_begin=0;
int i,exit=0;
for(i=0;i<n;i++)
{
if(list[i]>=0) exit=1;
ThisSum+=list[i];
if(ThisSum<0)
{
new_begin=i+1;
ThisSum=0;
}
else if(ThisSum>MaxSum)
{
end=i;begin=new_begin;
MaxSum=ThisSum;
}
}
if(exit) printf("%d %d %d\n",MaxSum,list[begin],list[end]);
else printf("%d %d %d\n",0,list[0],list[n-1]);
}
01-复杂度 Maximum Subsequence Sum
最新推荐文章于 2024-05-19 15:25:35 发布