Cod sursa(job #3304542)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 24 iulie 2025 17:56:42
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>

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

int main()
{
    int n;
    f >> n;
    int spCrt = 0, spMin = 0, leftCrt = 0, inceputSecv = 1, finalSecv = 1, ssm = -2e9;
    for (int i = 1; i <= n; i++)
    {
        int nr;
        f >> nr;
        spCrt += nr;
        if (spCrt - spMin > ssm)
        {
            ssm = spCrt - spMin;
            inceputSecv =
                    leftCrt + 1; /// ssm-ul este obtinut din spCrt - sp[leftCrt], deci leftCrt nu este inclus in ssm
            finalSecv = i;
        }
        if (spCrt < spMin)
        {
            spMin = spCrt; ///spMin este numarul pe care il scadem, deci subsecventa mea va incepe de la i + 1
            leftCrt = i;
        }
    }
    g << ssm << ' ' << inceputSecv << ' ' << finalSecv;
    return 0;
}