Cod sursa(job #2454260)

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

using namespace std;

int n,c,b[6000009],maxim[6000009],max1,c1,c2,ind;

void suma_maxima(){

    ind=1;
    for (c=1;c<=n;c++){

            if (maxim[c-1]+b[c]>=b[c]){

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


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

                maxim[c]=b[c];
                ind=c;
            }


            if (maxim[c]>max1){

                    max1=maxim[c];
                    c1=ind;
                    c2=c;
            } else
            if ((maxim[c]==max1) & (c2-c1>c-ind)){
               c1=ind;
               c2=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;
}