Cod sursa(job #3142272)

Utilizator Alex_DumitrascuAlex Dumitrascu Alex_Dumitrascu Data 20 iulie 2023 13:40:35
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#define ll long long
using namespace std;
int main()
{
    cin.tie(0);
    cin.sync_with_stdio(false);
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    ll n, s=0, x, maxis=-1000000000000;
    ll left, right, ml, mr, maxnr=-1000000000000, mind;
    cin>>n;
    for (int i=1; i<=n; i++) {
        cin>>x;
        s+=x;
        if (s<0) {
            s=0;
            left=i+1;
        }
        if (s>maxis) {
            right=i; maxis=s;
            ml=left; mr=right;
        }
        if (x>maxnr) {
            maxnr=x;
            mind=i;
        }

    }
    if (maxnr>0) cout<<maxis<<' '<<ml<<' '<<mr;
    else cout<<maxnr<<' '<<mind<<' '<<mind;
    return 0;
}