Cod sursa(job #3342413)

Utilizator vlad.perpegel2010Vlad Perpegel vlad.perpegel2010 Data 24 februarie 2026 09:44:51
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main() {
    int n;
    fin >> n;
    long long max_sum = -2000000000; // Valoare foarte mica
    long long current_sum = 0;
    int start = 0, end = 0, current_start = 1;
    for (int i = 1; i <= n; i++) {
        int x;
        fin >> x;
        // Pasul 1: Decidem daca adunam x la suma existenta sau incepem de la zero
        if (current_sum < 0) {
            current_sum = x;
            current_start = i;
        } else {
            current_sum += x;
        }
        // Pasul 2: Verificam daca am doborat recordul
        if (current_sum > max_sum) {
            max_sum = current_sum;
            start = current_start;
            end = i;
        }
    }
    fout << max_sum << " " << start << " " << end << endl;
    return 0;
}