Cod sursa(job #2712909)

Utilizator 0021592Grecu rares 0021592 Data 26 februarie 2021 19:47:21
Problema Subsecventa de suma maxima Scor 45
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int sum[600004], v[600004], best[600004], i, n, maxi, mini, a, b;
int main()
{
    fin >> n;
    for (i=1; i<=n; i++)
    {
        fin >> v[i];
    }
    sum[0] = 0;
    for (i = 1; i <= n; i++)
    {
        sum[i] = v[i] + sum[i-1];
    }
    mini = sum[0];
    maxi = -1000000000;
    for (i = 1; i <= n; i++)
    {
        best[i] = sum[i] - mini;
        if (mini > sum[i]) {mini = sum[i]; a = i;}
        if (maxi < best[i]) {maxi = best[i]; b = i;}
    }
    fout << maxi << " " << a+1 << " " << b;
}