Cod sursa(job #3206044)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 21 februarie 2024 15:36:07
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("apm.in");
ofstream out("apm.out");
long long n, a[6000005];

int main()
{
    in >> n;
    for (int i = 1; i <= n; i++) {
        in >> a[i];
    }
    long long Min = 0, pmin = 0;
    long long l = 0, r = 0;
    long long curr = 0;
    long long ans = -1e9;

    for (int i = 1; i <= n; i++) {
        curr += a[i];
        if (curr - Min > ans) {
            ans = curr - Min;
            l = pmin + 1;
            r = i;
        }

        if (curr < Min) {
            Min = curr;
            pmin = i;
        }
    }

    out << ans << " " << l << " " << r << '\n';

    return 0;
}