#include<iostream>
#include<cmath>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<vector>
#include<set>
#include<map>
using namespace std;
int n,m;
int aa[200005];
int bb[200002];
int num=0;
int main()
{
cin>>n;
int maxx=1<<31,now=0;
int countt=0;
for(int i=1; i<=n; i++)
{
cin>>aa[i];
now+=aa[i];
// cout<<aa[i]<<endl;
if(now>maxx)
{
bb[countt]=i;
countt++;
// cout<<maxx<<endl;
maxx=now;
}
if(now<0)
{
now=0;
countt=0;
memset(bb,0,sizeof(bb));
}
}
sort(bb,bb+countt);
for(int i=bb[0]; i<=bb[countt-1]; i++)
{
cout<<aa[i]<<" ";
}
cout<<endl;
cout<<maxx<<endl;
}
最大连续子段和及其区间
最新推荐文章于 2021-07-18 10:46:50 发布