Cod sursa(job #270311)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 3 martie 2009 21:28:44
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
# include <stdio.h>
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 ("%i",&n);
for (i=1;i<=n;i++)
scanf ("%i",&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;
}
if (max>0)
{
s1=s[p2];
i=p2;
while (s1>0)
{
s1=s1-a[i];
i--;
}
p1=i+1;
}
else
p1=p2;
printf ("%i %i %i",max,p1,p2);
return 0;
}