Cod sursa(job #2809284)

Utilizator andrei81Ragman Andrei andrei81 Data 26 noiembrie 2021 16:27:26
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

ifstream fin("secv2.in");
ofstream fout("secv2.out");

int n, k, sp[50005], maxx = -(1 << 29), xa = 0, xb = 0;
deque<int> dq;

int main()
{
    fin >> n >> k;

    for (int i = 1; i <= n; i++)
        fin >> sp[i], sp[i] += sp[i - 1];

    for (int i = k; i <= n; i++)
    {
        while (!dq.empty() && sp[dq.back()] > sp[i - k])
            dq.pop_back();

        dq.push_back(i - k);

        if (sp[i] - sp[dq.front()] > maxx)
        {
            maxx = sp[i] - sp[dq.front()];
            xa = dq.front() + 1;
            xb = i;
        }
    }

    fout << xa << " " << xb << " " << maxx;
}