Cod sursa(job #949641)

Utilizator rzvrzvNicolescu Razvan rzvrzv Data 14 mai 2013 15:06:04
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<cstdio>

using namespace std;

int a[6000004],n,i,pozy,pozx,lg,prev,sum,mx;

int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    pozy=1;
    pozx=1;
    lg=1;
    prev=1;
    sum=a[1];
    mx=a[1];
    for(i=2;i<=n;i++)
    {
        if(sum<0)
        {
            sum=a[i];
            prev=i;
            lg=1;
        }
        else
        {
            sum+=a[i];
            lg++;
        }
        if(sum>mx)
        {
            mx=sum;
            pozy=prev;
            pozx=i;
            lg=i-prev+1;
        }
    }
    printf("%d %d %d\n",mx,pozy,pozx);
    return 0;
}