Cod sursa(job #3290228)

Utilizator Recordbraker69Lentoiu Andrei Recordbraker69 Data 29 martie 2025 15:43:15
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;

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

// https://www.infoarena.ro/problema/ssm

int main()
{
    int n;
    cin >> n;

    int a[n + 1], s[n + 1];
    cin >> a[1];
    s[1] = a[1];

    for (int i = 2; i <= n ; i++)
    {
        cin >> a[i];
        if (s[i - 1] >= 0)
            s[i] = s[i - 1] + a[i];
        else
            s[i] = a[i];
    }

    int poz_maxim = 1;
    for (int i = 2; i <= n ; i++)
        if (s[i] > s[poz_maxim])
            poz_maxim = i;

    int inceput = poz_maxim;
    while (inceput > 0)
    {
        if (a[inceput] == s[inceput])
            break;
        inceput--;
    }
    while (inceput > 0 && a[inceput] == s[inceput])
        inceput--;
    inceput++;

    cout << s[poz_maxim] << ' ' << inceput << ' ' << poz_maxim;
    return 0;
}