Cod sursa(job #2164117)

Utilizator remus88Neatu Remus Mihai remus88 Data 12 martie 2018 21:35:54
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#define Nmax 6000009

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

int n,v[Nmax],start,finish,ssm,suma,laststart;

void ReadInput() {

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

void Solve() {

    suma=v[1];
    start=1; finish=1;
    laststart=1;
    ssm=v[1];

    for (int i=2; i<=n; ++i) {

        if (suma>=0)
            suma=suma+v[i];

        else
        {
            suma=v[i];
            laststart=i;
        }

        if (suma>ssm) {

            ssm=suma;
            start=laststart;
            finish=i;
        }
    }

    g<<ssm<<' '<<start<<' '<<finish<<'\n';
}

int main() {

    ReadInput();
    Solve();

    f.close(); g.close();
    return 0;
}