Cod sursa(job #1804050)

Utilizator vlad6001Pintilie Vlad vlad6001 Data 12 noiembrie 2016 10:26:28
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <deque>
using namespace std;

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

long long nr, k, i, v[5000002], suma;
deque <long long> deq;

int main()
{
    cin >> nr >> k;
    for(i=1; i <= nr; i++)
        cin >> v[i];

    deq.push_back(1);
    for(i=2; i <= nr; i++)
    {
        while(!deq.empty() && v[i] < v[deq.front()])
        {
            //cout<<deq.front()<<"\n";
            deq.pop_front();
        }
        deq.push_front(i);

        if(i >= k)
        suma += v[deq.back()];

        while(!deq.empty() && deq.back() <= i-k+1)
        deq.pop_back();
    }
    cout << suma;
}