Cod sursa(job #1700577)

Utilizator leopop29Pop Leonard leopop29 Data 10 mai 2016 20:15:54
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <deque>
#define NM 5000005

using namespace std;

deque<int> d;
int v[NM];

int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    int n, k;
    long long s = 0;

    f >> n >> k;

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

    int p = 1;
    while(p <= n)
    {
        while(d.size() && v[d.back()] > v[p])
            d.pop_back();
        d.push_back(p);

        while(d.size() && d.front() <= p-k)
            d.pop_front();

        if(p >= k)
            s += v[d.front()];
        ++p;
    }

    g << s;
}