Cod sursa(job #260982)

Utilizator MariusMarius Stroe Marius Data 17 februarie 2009 19:57:29
Problema Subsecventa de suma maxima Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 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) FOR (j, i, n) {
        int sum = 0;
        FOR (k, i, j)  sum += S[k];
        if (sum > bestSum)
            bestSum = sum, beg = i, end = j;
    }
    ofstream out(oname);
    out << bestSum << " " << beg << " " << end;

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