Cod sursa(job #3261041)

Utilizator jonesmihneaJones Clifford Mihnea jonesmihnea Data 4 decembrie 2024 10:40:18
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <algorithm>

using namespace std;

int n, v[1001], st, dr, stmax, drmax, cont, i, elementmax=-99999, pozmax=0;
long long smax=0, s=0;

void afisare (int suma, int pozitie1, int pozitie2);

int main()
{
    cin>>n;
    for(i=1 ; i<n+1 ; i++){
        cin>>v[i];
        if (elementmax<v[i]) {
            elementmax=v[i];
            pozmax=i;
        }
        if (v[i]<0) cont++;
        if (s<0) {
            s=v[i];
            st=i;
        } else {
            s=s+v[i];
            dr=i;
        }
        if (s>smax) {
            smax=s;
            stmax=st;
            drmax=dr;
        }
    }
    if(drmax==1) drmax=stmax;
    if (smax==v[1]) {
        afisare(elementmax, pozmax, pozmax);
        return 0;
    }
    if (cont==n) {
        afisare(elementmax, pozmax, pozmax);
        return 0;
    }
    afisare(smax, stmax, drmax);
    return 0;
}

void afisare (int suma, int pozitie1, int pozitie2)
{
    cout<<suma<<endl;
    cout<<pozitie1<<" "<<pozitie2;
}