Cod sursa(job #1504365)

Utilizator andreitulusAndrei andreitulus Data 17 octombrie 2015 17:34:00
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <algorithm>
#define MAX 6000000
#define inf 0x3f3f3f3f
using namespace std;

int n, v[MAX], s[MAX];


void read()
{
    int i;

    scanf("%d", &n);
}


void suma()
{
    int i, l, r, sol = -inf, k = 0;

    s[0] = 0;

    for(i = 1; i <= n; i++)
    {
        scanf("%d", &v[i]);

        s[i] = s[i - 1] + v[i];

        if(sol < s[i] - s[k])
        {
            sol = s[i] - s[k];
            l = k + 1;
            r = i;
        }

        if(s[k] > s[i])
            k = i;
    }

    printf("%d %d %d", sol, l, r);

}



int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);

    read();

    suma();

    fclose(stdin);
    fclose(stdout);
    return 0;
}