Cod sursa(job #446757)

Utilizator SpiderManSimoiu Robert SpiderMan Data 26 aprilie 2010 17:18:18
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>
using namespace std;

#define IN            "ssm.in"
#define OUT           "ssm.out"
#define MAX_N         7000005
#define MAX(a, b)     ((a) > (b) ? (a) : (b))
#define oo            2147483647

int V[MAX_N], N;

int main()
{
    freopen(IN,"r",stdin);
    freopen(OUT,"w",stdout);

    int i;

    for ( scanf("%d",&N), i = 1; i <= N; i++)
        scanf("%d",&V[i]);

    int rez = -oo, min = 0, poz, st, dr;

    for (i = 1; i <= N; i++)
    {
        V[i] += V[i - 1];
        if (rez < V[i] - min)
            rez = V[i] - min, st = poz + 1, dr = i;
        if (min > V[i])
            min = V[i], poz = i;
    }

    printf("%d %d %d",rez,st,dr);

    return 0;
}