Cod sursa(job #2394806)

Utilizator petrisorvmyVamanu Petru Gabriel petrisorvmy Data 1 aprilie 2019 22:32:48
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <queue>
#include <cstring>
#define NMAX 6000011
#define intt long long

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