Cod sursa(job #2890644)

Utilizator bogdan2405Strat Bogdan-Valentin bogdan2405 Data 16 aprilie 2022 10:54:08
Problema Subsecventa de suma maxima Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 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 = INT_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;
    for(i=1;i<=n;++i){
        //g << sp[i] << ' ' << mp[i-1]<<'\n';
        if(i>2 && mp[i-1]!=mp[i-2]){
            left = i;
        }

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

    g << ans << ' ' << left << ' ' << right;

    return 0;
}