Cod sursa(job #1571604)

Utilizator RG1999one shot RG1999 Data 18 ianuarie 2016 10:55:57
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>

using namespace std;
int a[6000005],best[6000005],i,smax,in,sf,n,inmax;
int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    smax=-999999;
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    for(i=1;i<=n;i++)
    {
        best[i]=a[i];

        if(best[i]<best[i-1]+a[i])
           best[i]=best[i-1]+a[i];
           else
            if(i-1!=0)
            {if(best[i]>best[i-1]+a[i])
            in=i;}
           else
            if(best[i]==best[i-1]+a[i])
                in=i;
         if(best[i]>smax)
         {
             smax=best[i];
             sf=i;
             inmax=in;
         }

    }
    printf("%d %d %d",smax,inmax,sf);
    return 0;
}