<<点个赞吧
分析
典型动规题
C++ 代码
#include<bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
int a[1212121];
int maxn[1212121];
int n;
int main(){
while(cin>>n){
memset(maxn,0,sizeof(maxn));
for(int i=1;i<=n;i++) cin>>a[i];
int sum=0,l,r,p;
for(int i=1;i<=n;i++){
maxn[i]=max(maxn[i-1]+a[i],a[i]);
if(maxn[i-1]<0) p=i-1;
if(maxn[i]>sum) sum=maxn[i],l=p,r=i-1;
}
if(sum) printf("%d %d %d\n",sum,l,r);
else puts("0 0 0");
}
return 0;
}
hack数据:
5
-1 -1 0 -1 -1