Cod sursa(job #2454245)

Utilizator G.LuminitaLuminita Guzovatii G.Luminita Data 7 septembrie 2019 19:36:36
Problema Subsecventa de suma maxima Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 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;

void suma_maxima(){

    //c1=1;
    //c2=1;
    //maxim[1]=b[c];
    for (c=2;c<=n;c++){

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

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

                if (maxim[c]>max1){

                    max1=maxim[c];
                    c2=c;
                }

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

                maxim[c]=b[c];

                if (maxim[c]>max1){

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