Cod sursa(job #1784984)

Utilizator Mihai_PredaPreda Mihai Dragos Mihai_Preda Data 20 octombrie 2016 19:03:33
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

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

int n, k;

int v[5000001];

void citire()
{
    in >> n >> k;
    for(int i = 1; i <= n; ++i)
        in >> v[i];
}

void rezolvare()
{
    deque<int> d;
    long long s = 0;
    for(int i = 1; i <= n; ++i)
    {
        while(d.empty() == false && v[d.front()] >= v[i])
            d.pop_front();
        d.push_front(i);
        if(d.back() <= i - k)
            d.pop_back();
        if(i >= k)
        {
            s += v[d.back()];
        }
    }
    out << s;
}

int main()
{
    citire();
    rezolvare();
    return 0;
}