hutianxiangdawang 2015-04-17 06:04:58
点我顶贴
收藏
删除
#include <iostream>
using namespace std;
struct dp {
int start;
int data;
};
int main() {
int n;
cin>>n;
int a[n];
dp s[n];
bool x=true;
for(int i=0;i<n;i++) {
cin>>a[i];
if(a[i]>=0) x=false;
}
if(x) cout<<0<<endl;
s[0].start=0,s[0].data=a[0];
for(int i=1;i<n;i++) {
if(s[i-1].data+a[i]>=a[i]) {
s[i].start=s[i-1].start;
s[i].data=s[i-1].data+a[i];
} else {
s[i].start=i;
s[i].data=a[i];
}
}
int zddata=s[0].data;
int zdh=0;
for(int i=1;i<n;i++) {
if(s[i].data>zddata) {
zddata=s[i].data;
zdh=i;
}
}
cout<<s[zdh].start+1<<' '<<zdh+1<<endl<<zddata<<endl;
return 0;
}