Cod sursa(job #2966510)

Utilizator indianu_talpa_iuteTisca Catalin indianu_talpa_iute Data 17 ianuarie 2023 19:07:07
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <bits/stdc++.h>
#define MAXN 6000000

using namespace std;

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

int n, arr[MAXN + 1];

int main() {
    int sum = 0, bestSum = INT_MIN, currentLo = 0, lo = 0, hi = 0;
    fin >> n;
    for (int i = 0; i < n; i++) {
        fin >> arr[i];
        if (sum + arr[i] < 0) {
            sum = arr[i];
            currentLo = i;
        } else
            sum += arr[i];
        if (sum > bestSum) {
            bestSum = sum;
            lo = currentLo;
            hi = i;
        }
    }

    fout << bestSum << ' ' << lo + 1 << ' ' << hi + 1 << '\n';
    return 0;
}