Cod sursa(job #2859104)

Utilizator e_ggIonescu Dorian e_gg Data 28 februarie 2022 20:53:52
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int sp[6000005],v[6000005];
int main()
{
    int n,minim,sol,sf,sum,st;
    f>>n;
    for(int i=1;i<=n;i++){
        f>>v[i];
        sp[i]=sp[i-1]+v[i];
    }
    minim=2e9;
    sol=-2e9;
    for(int i=1;i<=n;i++){
        if(sol<sp[i]-minim){
            sol=sp[i]-minim;
            sf=i;
        }
        minim=min(minim,sp[i]);
    }
    sum=0;
    for(int i=sf;i>0;i--){
        sum+=v[i];
        if(sum==sol){
            st=i;
            break;
        }
    }
    g<<sol<<' '<<st<<' '<<sf<<'\n';
    f.close();
    g.close();
    return 0;
}