Cod sursa(job #2819166)

Utilizator EdyIordacheIordache Eduard EdyIordache Data 17 decembrie 2021 23:05:53
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>

using namespace std;

int s[6000001], best[6000001];

int main()
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");

    int x, i, imn, n, mn, bests;
    s[0] = 0;
    f>>n;
    for (i = 1; i <= n; i++) {
        f>>x;
        s[i] = s[i - 1] + x;
    }

    mn = s[0];
    bests = -int(2e9);

    int a, b;
    for (i = 1; i <= n; i++) {
        best[i] = s[i] - mn;
        if (bests < best[i]) {
            bests = best[i];

            a = imn + 1;
            b = i;
        }
        if (mn > s[i]) {
            mn = s[i];
            imn = i;
        }
    }

    g<<bests<<" "<<a<<" "<<b;

    return 0;
}