Cod sursa(job #1804064)

Utilizator AdrianGotcaAdrian Gotca AdrianGotca Data 12 noiembrie 2016 10:36:52
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
long long suma;
int nr, k, i, v[5000002];
deque <int> 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()])
        {
            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;
}