Cod sursa(job #2500796)

Utilizator pregoliStana Andrei pregoli Data 28 noiembrie 2019 18:17:26
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
#define newline '\n'
#define ll long long
#define uns unsigned
#define deb(x) cerr << x << ' '
#define debnewL(x) cerr << x << newline
using namespace std;
///************************************
ifstream fin("text.in");
ofstream fout("text.out");
///************************************

const uns NMAX(1e6 + 5);;
ll v[NMAX], n;

int main()
{
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> v[i];

    ll maxi = 0, cmaxi = 0, l, r, posil;
    for (int i = 1; i <= n; i++)
    {
        if (cmaxi < 0)
        {
            cmaxi = v[i];
            posil = i + 1;
        }
        else
            cmaxi += v[i];
        if (cmaxi > maxi)
        {
            maxi = cmaxi;
            r = i;
            l = posil;
        }
    }

    fout << maxi << ' ' << l << ' ' << r;
    return 0;
}