Cod sursa(job #3261045)

Utilizator jonesmihneaJones Clifford Mihnea jonesmihnea Data 4 decembrie 2024 10:42:45
Problema Subsecventa de suma maxima Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>

using namespace std;

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

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()
{
    in>>n;
    for(i=1 ; i<n+1 ; i++){
        in>>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 (smax==elementmax) {
        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)
{
    out<<suma<<" "<<pozitie1<<" "<<pozitie2;
}