Cod sursa(job #266788)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 26 februarie 2009 08:55:32
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
#define DIM 6000001
int n,s[DIM],max,min,ind,lung,in;
void read ()
{
    int i,nr;
    scanf("%d",&n);
    for(i=1;i<=n;++i)
    {
        scanf("%d",&nr);
        s[i]=s[i-1]+nr;
    }
}
void solve ()
{
    int i;
    max=-2000000000;
    for(i=1;i<=n;++i)
    {
        if(s[i]-min>max)
        {
            lung=i-ind;
            in=ind;
            max=s[i]-min;
        }
        if(s[i]<min)
        {
            ind=i+1;
            min=s[i];
        }
    }
    printf("%d %d %d",max,in,in+lung);
}
int main ()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    read ();
    solve ();
    return 0;
}