Cod sursa(job #2042445)

Utilizator TheFFOFratila Florin Ovidiu TheFFO Data 18 octombrie 2017 17:05:00
Problema Subsecventa de suma maxima Scor 90
Compilator c Status done
Runda Arhiva educationala Marime 0.96 kb
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    int n, x, l, r, s = 0, bl, br, bs;

    l = r = bl = br = 1;
    scanf("%d %d", &n, &s);
    bs = s;    

    while (--n)
    {
        scanf("%d", &x);
        if (0 < s + x)
        {
            s = s + x;
            ++r;
            if (bs < s)
            {
                bs = s;
                bl = l;
                br = r;
            }
        }
        else if (s < x)
        {
            s = x;
            bl = br = l = ++r;
        }
        else
        {
            if (bs < s)
            {
                bs = s;
                bl = l;
                br = r;
            }
            s = 0;
            l = ++r + 1;
        }
    }
    if (bs < s)
    {
        bs = s;
        bl = l;
        br = r;
    }

    printf("%d %d %d\n", bs, bl, br);

    return 0;
}