Cod sursa(job #474133)
Utilizator | Data | 2 august 2010 16:34:47 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include<stdio.h>
int S[6000001];
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
int n;
scanf("%d\n",&n);
for(int i=1;i<=n;i++)
scanf("%d ",&S[i]);
S[0]=0;
int min,best=-99999999,ind=0,beg,end;
for(int i=1;i<=n;i++){
S[i]+=S[i-1];
if(best<S[i]-min)
best=S[i]-min,beg=ind+1,end=i;
if(min>S[i])
min=S[i],ind=i;
}
printf("%d %d %d",best,beg,end);
return 0;
}