Cod sursa(job #3224377)

Utilizator aeru1Ianos Alex-Marian aeru1 Data 15 aprilie 2024 11:35:05
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

#define TITLE "deque"
#define ll long long

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

int v[5000010];

int solve()
{
    ll n,k;

    f>>n>>k;
    for(int i=1; i<=n; i++)
        f>>v[i];
    ll answer=0;
    deque<int>DQ;
    for(int i=1; i<k; i++)
    {
        while(!DQ.empty() && v[DQ.back()]>=v[i])
            DQ.pop_back();
        DQ.push_back(i);
    }
    for(int i=k; i<=n; i++)
    {
        while(!DQ.empty() && v[DQ.back()]>=v[i])
            DQ.pop_back();
        DQ.push_back(i);
        if(DQ.front()==i-k)
            DQ.pop_front();
        answer+=v[DQ.front()];
    }
    g<<answer;
    return 0;
}

int main()
{
    solve();
    return 0;
}