Cod sursa(job #2183628)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 23 martie 2018 12:06:46
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <climits>
using namespace std;

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

int n,i,j,v[6000001],BestI,Bst,Bdr,st,dr;
long long m;

int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    m=LONG_MIN;
    BestI=-1000000;

    for(i=1;i<=n;i++){
        ///BestI=max(BestI+v[i],v[i]);

        if(BestI+v[i]>v[i]){
            Bdr++;
            BestI+=v[i];
        }else{
            BestI=v[i];
            Bst=i;
            Bdr=i;
        }

        if(BestI>m){
            m=BestI;
            st=Bst;
            dr=Bdr;
        }
    }
    fout<<m<<" "<<st<<" "<<dr;

    return 0;
}