Cod sursa(job #819264)
Utilizator | Data | 18 noiembrie 2012 19:18:14 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include<cstdio>
#define D 6000001
using namespace std;
int s[D];
int main()
{
freopen("ssm.in","r",stdin);freopen("ssm.out","w",stdout);
int n,i,a,m=-int(2e9),i1,i2,j,S=-D;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
s[i]=s[i-1]+a;
if(s[i]<m)
m=s[i],j=i;
if(S<s[i]-m)
S=s[i]-m,i2=i,i1=j+1;
}
printf("%d %d %d",S,i1,i2);
}