Cod sursa(job #2099785)

Utilizator zanugMatyas Gergely zanug Data 4 ianuarie 2018 17:57:10
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

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

int n, k, x;

deque <int> dq;
deque <int> idx;

int main()
{
    long long res = 0;
    fin >> n >> k;
    for(int i = 0; i < n; ++i)
    {
        fin >> x;
        while(x < dq.back() && dq.size() > 0)
        {
            dq.pop_back();
            idx.pop_back();
        }
        dq.push_back(x);
        idx.push_back(i);

        while(idx.front() <= i - k)
        {
            dq.pop_front();
            idx.pop_front();
        }
        if(i >= k-1)
        {
            res += dq.front();
        }
    }

    fout << res << "\n";


    return 0;
}