Cod sursa(job #2394412)

Utilizator petrisorvmyVamanu Petru Gabriel petrisorvmy Data 1 aprilie 2019 16:50:20
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <queue>
#include <cstring>
#define NMAX 6000011
#define intt int
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

intt n, v[NMAX], pede[NMAX], p, u, solmax,ps,us;

int main()
{
    f >> n;
    for(int i = 1; i <= n; ++i) f >> v[i];
    pede[1] = v[1];
    solmax = v[1]; p = 1; u = 1;
    for(int i = 2; i <= n; ++i)
        if(pede[i-1] + v[i] > v[i])
        {
            u++;
            pede[i] = pede[i-1] + v[i];
            if(pede[i] > solmax)
            {
                solmax = pede[i];
                ps = p;
                us = u;
            }
        }
        else
        {
            pede[i] = v[i];
            u = p = i;
            if(pede[i] > solmax)
            {
                solmax = pede[i];
                ps = p;
                us = u;
            }
        }
    g << solmax << ' ' << ps << ' ' <<us;
    g.close(); f.close();
    return 0;
}