Cod sursa(job #2454220)

Utilizator G.LuminitaLuminita Guzovatii G.Luminita Data 7 septembrie 2019 19:15:11
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <string.h>
#include <cstring>
#include <fstream>

using namespace std;

int n,c,b[6000000],maxim[6000000],inceput[6000000],sfarsit[6000000],max1,c1,c2;

void suma_maxima(){

    for (c=2;c<=n;c++){
            if (maxim[c-1]+b[c]>=b[c]){

                maxim[c]=maxim[c-1]+b[c];
                inceput[c]=inceput[c-1];
                sfarsit[c]=c;

            } else
            if (maxim[c-1]+b[c]<b[c]){

                maxim[c]=b[c];
                inceput[c]=c;
                sfarsit[c]=c;

            }
        if (maxim[c]>max1){

            max1=maxim[c];
            c1=inceput[c];
            c2=sfarsit[c];
        }

    }
}

int main(){

    ifstream f("ssm.in");
    f >> n;

    for (c=1;c<=n;c++)
        f >> b[c];
    f.close();

    suma_maxima();

    ofstream g("ssm.out");
    g << max1 << ' ' << c1 << ' ' << c2;
    g.close();

    return 0;
}