Cod sursa(job #3267927)

Utilizator radeuojArghira Radu Stefan radeuoj Data 12 ianuarie 2025 22:13:49
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;

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

constexpr long long NMAX = 6000001;

int a[NMAX], sp[NMAX];

int main()
{
    int n;
    fin >> n;
    for (int i = 1; i <= n; i++)
    {
        fin >> a[i];
        sp[i] = sp[i - 1] + a[i];
    }

    int best = -2147483647, minelem = 0;
    int bestx = -1, besty = -1;
    for (int i = 1; i <= n; i++)
    {
        if (sp[i] - sp[minelem] > best)
            best = sp[i] - sp[minelem], bestx = minelem + 1, besty = i;

        if (sp[i] < sp[minelem])
            minelem = i;
    }

    fout << best << ' ' << bestx << ' ' << besty;

    return 0;
}