Cod sursa(job #2890686)

Utilizator bogdan2405Strat Bogdan-Valentin bogdan2405 Data 16 aprilie 2022 12:17:00
Problema Subsecventa de suma maxima Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
/*
Problema Subsecventa de suma maima
Platforma: Infoarena
*/
#include<bits/stdc++.h>

using namespace std;

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

int main(){
    int n,i,a,left,right;
    long long ans = LONG_LONG_MIN,s=0;

    vector<long long> sp,mp;

    f>>n;               //for starting from 1 index
    sp.push_back(0);
    mp.push_back(INT_MAX);

    for(i=1;i<=n;++i){
        f >> a;
        s += a;
        sp.push_back(s);
        mp.push_back( min( mp[i-1], sp[i] ) );
    }

    left = 1;
    int final_left;
    for(i=1;i<=n;++i){
        //g << i << ' ' << sp[i] << ' ' << mp[i-1]<<'\n';
        if(i>2 && mp[i-1]!=mp[i-2]){
            left = i;
        }

        long long val =  sp[i] - mp[i-1];
        if(val > ans){
            ans = val;
            right = i;
            final_left = left;
        }
    }

    g << ans << ' ' << final_left << ' ' << right;

    return 0;
}