输入一个正整数n(<=999),表示接下来要输入n个整数(有正有负),求出这段序列的最大连续子段和。
第一行一个整数n。
第二行有n个数字,每个数字的值在[-10000,10000]之间。
5
1 2 -5 6 8
14
例子:{1,2,3,4} 连续子段有 {1}, {1,2}, {1,2,3}, {1,2,3,4} ,{2,3}, {2,3,4}, {3,4} ,{4}。
#include<bits/stdc++.h>
using namespace std;
int m,a[10005],len=0,b[10005];
int main(){
cin>>m;
for(int i=1; i<=m; i++) cin>>a[i];
for(int i=2; i<m; i++){
len=a[i];
for(int j=i; j<=m; j++){
if(a[j]<=a[j+1])
len+=a[j+1];
else break;
}
b[i]=len;
len=0;
}
sort(b+1,b+m+1);
cout<<b[m]<<endl;
return 0;
}