Cod sursa(job #314835)
| Utilizator | Data | 13 mai 2009 10:51:36 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <stdio.h>
int main()
{ freopen ("ssm.in","r",stdin);
freopen ("ssm.out","w",stdout);
long x,n,i,st1,st,dr,sum,summax,sum1,min;
scanf ("%ld",&n);
scanf ("%ld",&x);
if (x>0) min=0;
else min=x;
sum=x;
summax=x;
st=st1=1;
dr=1;
for (i=2;i<=n;i++)
{scanf ("%ld",&x);
sum=sum+x;
sum1=sum-min;
if (sum1>summax) {summax=sum1;
st=st1;
dr=i;
}
if (min>sum) {min=sum;
st1=i+1;
}
}
printf ("%ld %ld %ld",summax,st,dr);
fcloseall();
return 0;
}
