Cod sursa(job #3314112)

Utilizator domdiridomdidomDominik domdiridomdidom Data 8 octombrie 2025 13:45:56
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <climits>

int main(){
    std::ifstream bem("ssm.in");
    std::ofstream kim("ssm.out");
    int n;
    bem >> n;
    int * tomb = new int[n];
    int maxIdxStart = 0, maxIdxEnd = 0, max = INT_MIN;
    int idxStart = 0, idxEnd = 0;
    bem >> tomb[0];
    for(int i = 1; i < n; i++){
        bem >> tomb[i];
        if(tomb[i] + tomb[i - 1] >= tomb[i]){
            tomb[i] += tomb[i - 1];
            idxEnd++;
        } else {
            idxStart = idxEnd = i;
        }
        if(tomb[i] > max){
            maxIdxStart = idxStart;
            maxIdxEnd = idxEnd;
            max = tomb[i];
        }
    }
    kim << max << ' ' << maxIdxStart + 1 << ' ' << maxIdxEnd + 1;
}