Cod sursa(job #257844)

Utilizator MariusMarius Stroe Marius Data 14 februarie 2009 00:51:44
Problema Subsecventa de suma maxima Scor Ascuns
Compilator cpp Status done
Runda Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

const char iname[] = "ssm.in";
const char oname[] = "ssm.out";

const int MAXN = 7000005;

#define FOR(i, a, b)  for (int i = (a); i <= (b); ++ i)
#define Max(a, b)  ((a) > (b) ? (a) : (b))

int S[MAXN], n;

int main(void) {
    ifstream in(iname);
    in >> n;
    FOR (i, 1, n)  in >> S[i];

    int bestSum = -int(2e9), beg, end;
    FOR (i, 1, n) {
        int sum = 0;
        FOR (j, i, n) {
            sum += S[j];
            if (sum > bestSum)
                bestSum = sum, beg = i, end = j;
        }
    }
    ofstream out(oname);
    out << bestSum << " " << beg << " " << end;

    in.close(), out.close();
    return 0;
}