Cod sursa(job #3125264)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 2 mai 2023 15:47:32
Problema Deque Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f ("deque.in");
ofstream g ("deque.out");

const int nmax = 5e6 + 3;

int n, k, v[nmax], sol;

deque <int> q;

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

    for (int i = 1; i <= n; ++i)
        f >> v[i];

    for (int i = 1; i <= k; ++i)
    {
        while (true)
        {
            if (q.empty())
                break;

            if (v[q.front()] > v[i])
                q.pop_front();
            else break;
        }

        q.push_back(i);
    }

    sol = v[q.front()];

    for (int i = k + 1; i <= n; ++i)
    {
        if (i - q.front() == k)
            q.pop_front();

        while (true)
        {
            if (q.empty())
                break;

            if (v[q.front()] > v[i])
                q.pop_front();

            else break;
        }

        q.push_back(i);

        sol += v[q.front()];
    }

    g << sol;

    return 0;
}