Cod sursa(job #3203733)

Utilizator bajuuuuBajenaru Mihai Catalin Ionut bajuuuu Data 14 februarie 2024 12:42:34
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <climits>
using namespace std;

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

int v[6000001];

int main() {
    int n;
    in >> n;
    for (int i = 1; i <= n; i++) {
        in >> v[i];
    }
    int suma_maxima = INT_MIN;
    int start_subsecventa = 1;
    int sfarsit_subsecventa = 1;
    int suma_curenta = 0;
    int start_curent = 1;

    for (int i = 1; i <= n; i++) {
        if (suma_curenta < 0) {
            suma_curenta = v[i];
            start_curent = i;
        } else {
            suma_curenta += v[i];
        }
        if (suma_curenta > suma_maxima) {
            suma_maxima = suma_curenta;
            start_subsecventa = start_curent;
            sfarsit_subsecventa = i;
        }
    }

    out << suma_maxima << ' ' << start_subsecventa << ' ' << sfarsit_subsecventa << endl;

    return 0;
}