Cod sursa(job #1984108)

Utilizator infomaxInfomax infomax Data 23 mai 2017 18:43:41
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

ifstream F("ssm.in");
ofstream G("ssm.out");

int n, st, dr, v[6000005], smst, smdr;
int smc, smg; ///suma maxima crescatoare si suma maxima globala

int main()
{
    F >> n;
    for(int i = 1; i <= n; ++ i)
        F >> v[i];
    smg = v[1];
    smc = v[1];
    st = dr = smst = smst = 1;
    for(int i = 2; i <= n; ++ i)
    {
        if(smc < 0)
            st = dr = smst = smdr = i, smc = v[i];
        else
        {
            if(v[i] + smc > v[i])
                dr ++, smc = v[i] + smc;
            else st = dr = i, smc = v[i];
            if(smc > smg)
                smg = smc, smst = st, smdr = dr;
        }
    }
    G << smg << " " << smst << " " << smdr;
    return 0;
}