Cod sursa(job #446758)

Utilizator SpiderManSimoiu Robert SpiderMan Data 26 aprilie 2010 17:21:05
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
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()
{
    ifstream f(IN);
    ofstream g(OUT);

    int i;

    for ( f >> N, i = 1; i <= N; i++)
         f >> V[i];

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

    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;
    }

    g << rez << " " << st << " " << dr;//printf("%d %d %d",rez,st,dr);

    return 0;
}