Cod sursa(job #2717282)

Utilizator Maria23Dutu Maria Maria23 Data 6 martie 2021 23:13:07
Problema Subsecventa de suma maxima Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
// 80 puncte
// probabil gresesc asta:
// Dacă există mai mult subsecvenţe candidate la soluţie,
// atunci se va tipări cea cu indicele de început cel mai mic, iar în caz de egalitate cea mai scurtă.

#include <iostream>
#include <fstream>

using namespace std;

int main() {
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");

    long long n;
    fin>>n;
    long long x, sumaMax, sumaCurenta, indiceInceput = 1, indiceSfarsit= 1;
    fin>>x;
    sumaMax = x;
    sumaCurenta = x;
    for(long long i = 2; i <= n; i++){
        fin>>x;
        if(sumaCurenta + x > x){
            sumaCurenta += x;
        }
        else{
            sumaMax = x;
            sumaCurenta = x;
            indiceInceput = i;
        }
        if(sumaCurenta > sumaMax){
            sumaMax = sumaCurenta;
            indiceSfarsit = i;
        }
    }
   fout<<sumaMax<< " "<<indiceInceput<< " "<<indiceSfarsit;
    return 0;
}