Cod sursa(job #832788)

Utilizator iuli1505Parasca Iuliana iuli1505 Data 11 decembrie 2012 14:29:54
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>
#define oo 1>>30
#define nmax 7000010
using namespace std;
int n,min, first, last, crt, best,s[nmax];
int main()
{
    int i;
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d", &n);
    scanf("%d", &s[1]);
    best=s[1];
    first=last=1;
    if(s[1]<0){min=s[1];crt=1;}
    for(i=2;i<=n;i++)
        scanf("%d", &s[i]);
    for(i=2;i<=n;i++)
    {
        s[i]+=s[i-1];
        if(best<s[i]-min)
        {
            best=s[i]-min;
            first=crt+1;
            last=i;
        }
        if(min>s[i])
        {
            min=s[i];
            crt=i;
        }

    }
    printf("%d %d %d\n", best, first, last);

    return 0;
}