Cod sursa(job #3305050)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 29 iulie 2025 16:57:58
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

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

int main()
{
    int spCrt = 0, spMin = 0, n, inceputSecv = 1, raspStanga = 1, raspDreapta, ssm = -2e9;
    f >> n;
    for (int i = 1; i <= n; i++)
    {
        int nr;
        f >> nr;
        spCrt += nr;
        if (spCrt - spMin > ssm) ///am resuit sa gasesc o ssm intre indicii [inceputSecv, i]
        {
            ///am gasit o noua subsecventa de suma maxima
            ssm = spCrt - spMin;
            raspStanga = inceputSecv;
            raspDreapta = i;
        }
        if (spCrt < spMin)
        {
            inceputSecv = i + 1;
            spMin = spCrt;
        }
    }
    g << ssm << ' ' << raspStanga << ' ' << raspDreapta;
    return 0;
}