Cod sursa(job #3004497)

Utilizator thvulpeTheodor Vulpe thvulpe Data 16 martie 2023 12:57:50
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, a[6000003], st, sf, sst, ssf, l;
long long s, Max;

int main(){
    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> a[i];
    st = sf = 1;
    sst = ssf = 1;
    Max = a[1];
    l = 1;
    for(int i = 1; i <= n; i++){
        s += a[i];
        if(s > Max || (s == Max && i - st + 1 < l)){
            Max = s;
            sst = st;
            sf = i;
            ssf = sf;
            l = sf - st + 1;
        } else if(s < 0){
            s = 0;
            st = i + 1;
        }
    }
    fout << Max << ' ' << sst << ' ' << ssf;
    return 0;
}