Cod sursa(job #2500793)

Utilizator pregoliStana Andrei pregoli Data 28 noiembrie 2019 18:13:27
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 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("ssm.in");
ofstream fout("ssm.out");
///************************************

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

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

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

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