Cod sursa(job #3321145)

Utilizator ShokapKaplonyi Akos Shokap Data 8 noiembrie 2025 11:52:57
Problema Subsecventa de suma maxima Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>

std::ifstream input ("ssm.in");
std::ofstream output ("ssm.out");

int main () {

    int n;
    input >> n;

    int arr[n];
    for (int i = 0; i < n; ++i) {
        int temp;
        input >> temp;
        arr[i] = temp;
    }

    int best[n];
    best[0] = arr[0];

    int startPoints[n];
    startPoints[0] = 1;
    int maxSubSeq = arr[0];
    int maxSubSeqEnd = 0;

    for (int i = 1; i < n; ++i) {
        best[i] = std::max(arr[i], best[i - 1] + arr[i]);
        if (best[i] == arr[i]) {
            startPoints[i] = 1;
        }
        else {
            startPoints[i] = 0;
        }
        if (best[i] > maxSubSeq) {
            maxSubSeq = best[i];
            maxSubSeqEnd = i;
        }
    }

    for(int i = maxSubSeqEnd; true; i--) {
        if(startPoints[i] == 1) {
            output << maxSubSeq << ' ' << i+1 << ' ' << maxSubSeqEnd+1;
            break;
        }
    }

return 0;
}