Cod sursa(job #270328)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 3 martie 2009 21:40:21
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 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=n;i>=1;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--;
}


while (a[i]==0)
i--;
p1=i+1;
}
else
p1=p2;
printf ("%i %i %i",max,p1,p2);
return 0;
}