Cod sursa(job #2689593)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 21 decembrie 2020 15:01:15
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ( "ssm.in" );
ofstream g ( "ssm.out" );
const long long INF = LLONG_MIN;
int main()
{
    long long N, nr, sum = 0, bestSum = INF, in = 1, inf, sff, mx = INF, pmx = 0;
    f >> N;

    for ( int i = 1; i <= N; i++ )
    {
        f >> nr;

        if ( nr > mx )
        {
            mx = nr;
            pmx = i;
        }

        sum += nr;

        if ( sum < 0 )
        {
            sum = 0;
            in = i + 1;
        }
        else
            if ( sum > bestSum )
            {
                bestSum = sum;
                inf = in;
                sff = i;
            }
    }

    if ( bestSum < 0 )
    {
        bestSum = mx;
        inf = pmx;
        sff = pmx;
    }

    g << bestSum << ' ' << inf << ' ' << sff;
    return 0;
}