Cod sursa(job #265782)

Utilizator DraStiKDragos Oprica DraStiK Data 24 februarie 2009 14:45:05
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>
#define DIM 6000005
#define INF -2000000000
int s[DIM];
int max,mi,lg,min,mini,n;
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=INF;
    for (i=1; i<=n; ++i)
    {
        if (s[i]-min>max)
        {
            max=s[i]-min;
            lg=i-mini;
            mi=mini;
        }
        if (s[i]<min)
        {
            mini=i;
            min=s[i];
        }
    }
    printf ("%d %d %d",max,mi+1,mi+lg);
}
int main ()
{
    freopen ("ssm.in","r",stdin);
    freopen ("ssm.out","w",stdout);
    read ();
    solve ();
    return 0;
}