Cod sursa(job #3174504)

Utilizator davidgeo123Georgescu David davidgeo123 Data 24 noiembrie 2023 20:30:34
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

int main()
{
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    int n;
    cin>>n;
    int nowsum=0, lastsum=0, nowlen=0, lastlen=0;
    int suma_max=INT_MIN, x, start, stop;
    int allmax=INT_MIN, posmax=0;
    for(int i=1; i<=n; i++)
    {
        cin>>x;
        if(x>allmax)
            allmax=x, posmax=i;
        nowsum=lastsum+x;
        nowlen=lastlen+1;
        if(nowsum<0)
            nowsum=0, nowlen=0;
        if(nowsum>suma_max)
        {
            suma_max=nowsum;
            start=i-nowlen+1;
            stop=i;
        }
        lastlen=nowlen;
        lastsum=nowsum;
    }
    if(allmax>0)
        cout<<suma_max<<' '<<start<<' '<<stop;
    else
        cout<<allmax<<' '<<posmax<<' '<<posmax;
    return 0;
}