Cod sursa(job #2194086)

Utilizator raul044Moldovan Raul raul044 Data 12 aprilie 2018 11:21:31
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#define maxN 6000005
#define low -0x3f3f3f3f
#define inf 0x3f3f3f3f

using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

int n, s[maxN];

int main () {
    fin >> n;
    for (int i = 1; i <= n; ++i)
        fin >> s[i];

    int best = low, end, begin, poz, min = inf;
    for (int i = 1; i <= n; ++i) {
        s[i] += s[i-1];
        if (best < s[i] - min) {
            best = s[i]-min;
            begin = poz+1;
            end = i;
        }
        if (min > s[i]) {
            min = s[i];
            poz = i;
        }
    }
    fout << best << " " << begin << " " << end;
}