Cod sursa(job #3305994)

Utilizator Matei123m17Matei 123 Matei123m17 Data 6 august 2025 13:45:49
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");

int main(){
    int n, nr, ssm = -2e9, spcrt = 0, spmin = 0, raspstanga = 0, raspdreapta = 0, inceputsecv = 1;
    f >> n;
    for (int i = 1; i <= n; i++){
        f >> nr;
        spcrt += nr; /// suma partiala curenta
        if (spcrt - spmin > ssm){ /// am gasit o noua secventa de suma maxima
            ssm = spcrt - spmin; /// suma maxima se transfera pentru comparare de mai incolo
            raspdreapta = i; /// indicele de sfarsit al secventei de sume maxime
            raspstanga = inceputsecv; /// indicele de inceput al secventei de sume maxime
        }
        if (spcrt < spmin){ /// am gasit o noua suma partiala minima
            spmin = spcrt; /// se transfera informatia nou gasita
            inceputsecv = i + 1; /// incepe o noua secventa de suma care o sa fie comparata
        }
    }
    g << ssm << " " << raspstanga << " " << raspdreapta;
    /// secventa cu suma maxima " " inceputul ei " " si sfarsitul ei
    return 0;
}