Cod sursa(job #1557306)

Utilizator ipus1Stefan Enescu ipus1 Data 27 decembrie 2015 11:38:47
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include<cstdio>
int v[6000001];
int main ()
{freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
int n,i,in,sf,x,max,s,inn,sff;
scanf("%d",&n);
for(i=1;i<=n;i++)
    scanf("%lld",&v[i]);
max=0;
in=sf=1;
inn=sff=1;
s=v[1];
for(i=2;i<=n;i++)
    {s+=v[i];
    if(s>max)
        {max=s;
        sf=i;
        inn=in;
        sff=i;
        }
    else
        if(s<0)
            {for(;i<=n&&v[i]<0;i++)
                {
                }
            s=v[i];
            in=i;
            if(s>max)
                {max=s;
                sf=i;
                inn=in;
                sff=i;
                }
            }
    }
if(max==0)
    {for(i=1;i<=n;i++)
        if(v[i]==0)
            {printf("0 %d %d",i,i);
            return 0;
            }
    max=v[i];
    x=1;
    for(i=2;i<=n;i++)
        if(v[i]>max)
            {max=v[i];
            x=i;
            }
    printf("%d %d %d",max,x,x);
    return 0;
    }
printf("%d %d %d",max,inn,sff);
return 0;
}