Cod sursa(job #1515732)

Utilizator TibiraducanuTiberiu Raducanu Tibiraducanu Data 2 noiembrie 2015 09:14:51
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <cstdio>

using namespace std;

int v[6000005],s[6000005];

int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);

    int n,i,maxx=-2000000000,in,sf,poz;
    bool sem=0;

    scanf("%d",&n);

    for(i=1;i<=n;i++) scanf("%d",&v[i]);

    for(i=1;i<=n;i++)
    {
        if(s[i-1]>0) s[i]=s[i-1]+v[i];
        else s[i]=v[i];

        if(s[i]>maxx)
        {
            maxx=s[i];
            sf=i;
        }
    }

    i=sf;

    while(s[i]>=0)
    {
        i--;
        sem=1;
    }

    if(sem==0) in=sf;
    else in=i+1;

    //for(i=1;i<=n;i++) printf("%d ",s[i]);

    printf("%d %d %d\n",maxx,in,sf);



    return 0;
}