Cod sursa(job #3212573)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 11 martie 2024 21:53:22
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include<bits/stdc++.h>

using namespace std;

const int NMAX = 6e6 + 5, INF = 1e9 + 7;
int n, v[NMAX], max1;

int main()
{
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);

    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >> v[i];
    
    int maxst, maxdr, st = 1, suma = -INF;
    for(int i = 1; i <= n; i++)
    {
        suma += v[i];
        if(suma > max1)
        {
            max1 = suma;
            maxst = st;
            maxdr = i;
        }
        if(suma < 0)
        {
            suma = 0;
            st = i + 1;
        }
    }

    cout << max1 << " " << maxst << " " << maxdr;
}