Cod sursa(job #328491)
Utilizator | cristian ojog crisojog | Data | 2 iulie 2009 12:29:02 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include<stdio.h>
long smax,s,n,i,a,st,dr,inc,sf;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%ld",&n);
scanf("%ld",&a);
s=smax=a;
st=dr=1;
for (i=2;i<=n;++i)
{
scanf("%ld",&a);
if (s+a>=a)
{
dr++;
s+=a;
}
else
{
st=dr=i;
s=a;
}
if (s>smax)
{
smax=s;
inc=st;
sf=dr;
}
}
printf("%ld %ld %ld\n",smax,inc,sf);
return 0;
}