Cod sursa(job #3209401)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 2 martie 2024 12:48:20
Problema Subsecventa de suma maxima Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb

#include <fstream>
#include <climits>
using namespace std;

ifstream fin ("ssm.in");
ofstream fout ("ssm.out");

const int NMAX = 6 * (1e6);
int v[NMAX + 5];

int main()
{
    int n;
    fin >> n;

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

    long long s = 0, maxim = INT_MIN, start = 1, finish;

    for(int i = 1; i <= n; i++)
    {
        s = s + v[i];

        if(s <= 0)
        {
            start = i + 1;
            s = 0;
        }
        else if(s > maxim)
        {
            maxim = s;
            finish = i;
        }
    }

    fout << maxim << ' ' << start << ' ' << finish;

    fin.close();
    fout.close();
    return 0;
}