Cod sursa(job #2704575)

Utilizator EusebiudistrugatorulLionel Messi Eusebiudistrugatorul Data 10 februarie 2021 19:46:30
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");

int sum[6000001];
int main() {
    int n, sum_max = -1000000000, nr;
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> nr;
        sum[i] += sum[i - 1] + nr;
    }
    int minimum = 0, left = 1, right = n;
    for (int i = 1; i <= n; ++i) {
        if (sum[i] - minimum > sum_max) {
            sum_max = sum[i] - minimum;
            right = i;
        }
        if (minimum > sum[i]) {
            minimum = sum[i];
            left = i + 1;
        }
    }
    fout << sum_max << ' ' << left << ' ' << right;
    return 0;
}