Cod sursa(job #2198190)

Utilizator ssebiStanciu Sebastian ssebi Data 23 aprilie 2018 20:54:40
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int main()
{
    int n,v[6000005];
    int summax=-99999;
    int sumanterior;
    int inceput,sfarsit,indinceput,indsfarsit;

    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];

    summax=v[1];
    sumanterior=v[1];
    indinceput=1;
    indsfarsit=1;
    inceput=1;
    sfarsit=1;
    for(int i=2;i<=n;i++)
    {
        if(sumanterior+v[i]>v[i]){
            sumanterior=sumanterior+v[i];
            indsfarsit=i;
        }
        else if(sumanterior+v[i]<=v[i]){
            sumanterior=v[i];
            indinceput=i;
            indsfarsit=i;
        }

        if(summax<sumanterior){
            summax=sumanterior;
            inceput=indinceput;
            sfarsit=indsfarsit;
        }
    }
    g<<summax<<' '<<inceput<<' '<<sfarsit;

}