Cod sursa(job #2602836)

Utilizator hudisteanumihaelaHudisteanu Mihaela hudisteanumihaela Data 17 aprilie 2020 23:00:38
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#define NMAX 6000005
using namespace std;

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

int n,inceput,inceputmin,fina,v[NMAX];
long long int sumamin,sumacurr,sumamax;

int main()
{
    int a,i;
    fin>>n;
    fin>>a;
    sumamin=0;
    sumacurr=sumamax=a;
    if(a<0)
        inceputmin=1, sumamin=a;
    else
        inceputmin=0;
    inceput=fina=1;
    for(i=2; i<=n; i++)
    {
        fin>>a;
        sumacurr=sumacurr+a;
        if(sumacurr-sumamin>sumamax)
            sumamax=sumacurr-sumamin, inceput=inceputmin, fina=i;
        if(sumacurr<sumamin)
            sumamin=sumacurr, inceputmin=i+1;
    }
    fout<<sumamax<<' '<<inceput<<' '<<fina;
    return 0;
}