Cod sursa(job #3005555)

Utilizator not_anduAndu Scheusan not_andu Data 17 martie 2023 08:44:59
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#include <algorithm>

using namespace std;

#define INFILE "ssm.in"
#define OUTFILE "ssm.out"
#define VMAX 6000001
#define endl '\n'

ifstream fin (INFILE);
ofstream fout (OUTFILE);

int n, v[VMAX];

// void afisare(int ind_1, int ind_2){

//     for(int i = ind_1; i <= ind_2; ++i){
//         fout << v[i] << " ";
//     }

//     fout << endl;

// }

void secvSumaMax(){

    int ind_1, ind_2, suma, i, ans = -2e9;

    ind_1 = -1, ind_2 = -1, suma = 0;

    for(int j = 1; j <= n; ++j){

        if(suma > 0){
            suma += v[j]; 
        }
        else{
            i = j;
            suma = v[j];
        }
        if(suma > ans){
            ans = suma;
            ind_1 = i, ind_2 = j;
        }
    }

    fout << ans << " " << ind_1 << " " << ind_2 << endl;

}

void solve(){

    // ! citirea datelor de intrare
    fin >> n;
    for(int i = 1; i <= n; ++i){
        fin >> v[i];
    }

    secvSumaMax();

}

int main(){
    solve();
    return 0;
}