Cod sursa(job #1939011)

Utilizator vlad_pPlavat Vlad vlad_p Data 25 martie 2017 13:20:23
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <limits.h>

using namespace std;

int num[60000000],SP[60000000],minime[60000000];

int main()
{
    ifstream in ("ssm.in");
    ofstream out ("ssm.out");
    int n,curent;
    in>>n;
    int Max = INT_MIN;
    for(int i=1;i<=n;i++)
        in>>num[i];
    int u=0,mi=0,pf=0;
    for(int j=1;j<=n;j++){
        SP[j]=SP[j-1]+num[j];

        if(SP[j]<minime[j-1]){
            mi=j;
        }
        minime[j]=min(minime[j-1],SP[j]);

        if(SP[j]-minime[j-1] >= Max){
            Max = SP[j]-minime[j-1];
            u=j;
            pf=mi;
        }
        //cout<<minime[j]<<endl<<endl;

    }
    out<<Max<<' '<<pf+1<<' '<<u;


    in.close();
    out.close();
    return 0;
}