Cod sursa(job #3305402)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 1 august 2025 12:39:24
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int main()
{
    int n;
    f >> n;
    int mx = -2e9, capatStFinal, capatDrFinal, capatStCrt = 1;
    int sum = 0;
    for (int i = 1; i <= n; i++)
    {
        int x;
        f >> x;
        sum += x;
        if (sum > mx)
        {
            mx = sum;
            capatStFinal = capatStCrt; // tin minte de unde a inceput
            capatDrFinal = i; /// si pana unde a mers
        }
        if (sum < 0) /// nu mai este benefic sa pastrez secventa
        {
            capatStCrt = i + 1;/// vreau sa tai din secventa prefixul care are suma negativa
            sum = 0;
        }
    }
    g << mx << ' ' << capatStFinal << ' ' << capatDrFinal;
    return 0;
}