Cod sursa(job #2862581)

Utilizator Toaster_KeyboardMihaescu Vlad-Mihai Toaster_Keyboard Data 5 martie 2022 15:45:57
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#pragma region
#include <bits/stdc++.h>
using namespace std;
// File
ifstream fin("ssm.in");
ofstream fout("ssm.out");
#pragma endregion

vector<int> Kadane(vector<int> vect, int n) {
    vector<int> ans = { vect[0], 1, 1 };
    int currMax = vect[0], start = 1;
    for (int i = 1; i < n; i++) {
        if (currMax < 0)
            currMax = vect[i], start = i + 1;
        else currMax += vect[i];
        if (currMax > ans[0]) {
            ans[0] = currMax;
            ans[1] = start;
            ans[2] = i + 1;
        }
    }
    return ans;
}

int main() {
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int n;
    fin >> n;

    vector<int> vect(n);
    for (auto& it : vect)
        fin >> it;

    vector<int> suma = Kadane(vect, n);
    for (auto it : suma)
        fout << it << ' ';

    return 0;
}