Cod sursa(job #2860921)

Utilizator sabinmMaxim Sabin sabinm Data 3 martie 2022 11:00:49
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;

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

// debug
#define fin cin
#define fout cout

#define INFINIT 0x3f3f3f

int main()
{
    int N, fst, lst;
    cin>>N;
    int a[N+2], sum[N+2], best[N+2];
    sum[0]=0;
    for (int i = 1; i <= N; ++i)
    {
        cin>>a[i];
        sum[i] = a[i] + sum[i-1];
    }
    int minn = sum[0], bestSum = -INFINIT;
    for (int i = 1; i <= N; ++i)
    {
        best[i] = sum[i] - minn;
        if (minn > sum[i])
            minn = sum[i], fst=i+1;
        if (bestSum < best[i])
            bestSum = best[i], lst=i;
    }
    cout<<bestSum<<' '<<fst<<' '<<lst;
    return 0;
}