Cod sursa(job #2928921)

Utilizator Barbu_MateiBarbu Matei Barbu_Matei Data 24 octombrie 2022 11:00:55
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;

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

const int MAX_LEN = 6000000;
int ps[MAX_LEN + 1], v[MAX_LEN + 1];
int maxSum = INT_MIN, minPs, indexMin, indexMax, aux;

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

    for (int i = 1; i <= n; ++i) {
        if (ps[i] - minPs > maxSum) {
            maxSum = ps[i] - minPs;
            indexMax = i;
            indexMin = aux;
        }
        if (ps[i] < minPs) {
            minPs = ps[i];
            aux = i;
        }
    }
    fout << ps[indexMax] - ps[indexMin] << " " << indexMin + 1 << " " << indexMax;
}