Cod sursa(job #1335567)

Utilizator tudorcomanTudor Coman tudorcoman Data 5 februarie 2015 18:21:02
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
#define RI register int
using namespace std;
vector <int> V;
ifstream fi ("ssm.in");
ofstream fo ("ssm.out");
int main()
{
    int S,N,SMAX;
    SMAX = (1LL << 31) - 1;
    int B;
    fi >> N;
    for (RI i = 0; i<N; ++i)
    {
        fi >> B;
        V.push_back(B);
    }
    fi.close();
    S = SMAX = V[0];
    int L,R,st,dr;
    st = 0;
    for(RI i = 1; i<N; ++i)
    {
        if (S+V[i] > V[i])
            S += V[i],dr=i;
        else S = V[i],st=i,dr=i;
        if (S > SMAX)
        {
             SMAX = S;
             L = st;
             R = dr;
        }


    }
    if (S > SMAX)
        SMAX = S,L=st,R=dr;
    ++L,++R;
    fo << SMAX << ' ' << L << ' '<< R;
    return 0;
}