Cod sursa(job #1939032)

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

using namespace std;

int num[60000000],SP[60000000];//,minime[60000000];
int minprev=0,mincur;

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]*/minprev){
            mi=j;
        }
        /*minime[j]*/mincur=min(/*minime[j-1]*/minprev,SP[j]);

        if(SP[j]-/*minime[j-1]*/minprev >= Max){
            Max = SP[j]-/*minime[j-1]*/minprev;
            u=j;
            pf=mi;
        }
        //cout<<minime[j]<<endl<<endl;
        minprev=mincur;
    }
    out<<Max<<' '<<pf+1<<' '<<u;


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