Cod sursa(job #3321147)

Utilizator ShokapKaplonyi Akos Shokap Data 8 noiembrie 2025 12:01:12
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 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 currentSubSeqStart = 0;
    int maxSubSeqStart = 0;
    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 (arr[i] > best[i - 1] + arr[i]) {
            currentSubSeqStart = i;
        }
        if (best[i] > maxSubSeq) {
            maxSubSeq = best[i];
            maxSubSeqEnd = i;
            maxSubSeqStart = currentSubSeqStart;
        }
    }

    output << maxSubSeq << ' ' << maxSubSeqStart +1 << ' ' << maxSubSeqEnd +1;

return 0;
}