Cod sursa(job #3250561)

Utilizator domdiridomdidomDominik domdiridomdidom Data 22 octombrie 2024 08:52:11
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <climits>

int main()
{
    int n, legnagyobb = INT_MIN, indexE, indexV, bestE, bestV;
    std::ifstream bem("ssm.in");
    bem >> n;
    int *best = new int[n];
    bem >> best[0];
    for(int i = 1; i < n; i++){
        int szam;
        bem >> szam;
        if(best[i-1] + szam >= szam){
            best[i] = best[i-1] + szam;
            indexV = i + 1;
        }
        else{
            best[i] = szam;
            indexE = i + 1;
            indexV = i + 1;
        }
        if(best[i] > legnagyobb){
            legnagyobb = best[i];
            bestE = indexE;
            bestV = indexV;
        }
    }
    bem.close();
    std::ofstream kim("ssm.out");
    kim << legnagyobb << " " << bestE << " " << bestV;
    kim.close();
    return 0;
}