Cod sursa(job #2477592)

Utilizator XXMihaiXX969Gherghinescu Mihai Andrei XXMihaiXX969 Data 20 octombrie 2019 19:06:58
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;

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

long long S[6000000];

int main()
{
    ios::sync_with_stdio(false);
    in.tie(0);
    long long  N;
    in >> N;
    S[0] = 0;
    for(long long i = 1;i <= N;i++)
    {
     int x;
     in >> x;
     S[i] = S[i-1] + x;
    }
    int rez = -1e6;
    long long l = 0;
    long long r = N;
    for(long long i = 1;i <= N;i++)
        for(long long j = 0;j < i;j++)
        if(S[i] - S[j] > rez)
        {rez = S[i] - S[j];
        l = j + 1;
        r = i;
        }
        else
        if(S[i] - S[j] == rez)
        {
            if(j + 1 < l)
                {l = j + 1;
                 r = i;
                }
            else
            if(j + 1 == l)
            {
                r= min(r,i);
            }
        }
        out << rez << " " <<  l << " " << r;
    return 0;
}