Cod sursa(job #2890897)

Utilizator mirunavramMiruna Avram mirunavram Data 16 aprilie 2022 22:55:18
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include<bits/stdc++.h>

using namespace std;

int n;
long long sol = LONG_MIN;

long long mp,sp;
int main() {
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");


    fin >> n;

    long long indexFinal,indexInitial,finLeft,stanga;
    sp = 0;
    //mp[0] = 0;
    mp = 0;

    for (long long i = 1; i <= n; i++) {
        long long x;
        fin >> x; //citim elementul curent
        sp += x;
        long long val = sp - mp;
        if(sp < mp )
        {
            indexInitial = i+1;
            stanga = i+1;
        }
        if(val > sol)
        {
            indexFinal = i;
            stanga = indexInitial;
        }
        sol = max(sol, val);
        mp = min(mp, sp);
    }

    fout << sol << " "<<stanga<<" "<<indexFinal;
}