Cod sursa(job #270305)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 3 martie 2009 21:25:00
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
# include <stdio.h>
long int a[6000005],s[6000005],p1,p2,n,k,s1,i,j,l,max,smax;
int main ()
{
freopen ("ssm.in","r",stdin);
freopen ("ssm.out","w",stdout);
scanf ("%li",&n);
for (i=1;i<=n;i++)
scanf ("%li",&a[i]);
s[1]=a[1];
j=1;

for (i=2;i<=n;i++)
{
if (s[i-1]<0)
{
s[i]=a[i];
j=1;
}
else
{
s[i]=s[i-1]+a[i];
j++;
}

}


max=-2000000000;
for (i=1;i<=n;i++)
if (s[i]>max)
{
max=s[i];
p2=i;
}
s1=s[p2];
i=p2;
while (s1>0)
{
s1=s1-a[i];
i--;
}
p1=i+1;

printf ("%li %li %li",max,p1,p2);
return 0;
}